A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭正续 中级黑马   /  2012-7-29 17:01  /  2446 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    我在学排序的时候,遇见一题不会想求教各位,题目是:让用户输入班级每个学生的姓名和成绩,并按照成
绩由高到低排序。在接收用户输入内容时,我不知道该定义一个什么类型变量去接收。有位大神说定义一个数组,里面包含一个string类型的变量和一个int类型变量,那么如果定义数组的话,我在排序的时候怎么把成绩挑出来?这样做的话,排序以后成绩和名字也对不上号啊?
    求各位老师同学教我啊

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览

using System;
using System.Collections.Generic;
using System.Text;
namespace shiyan
{
    struct Student
    {
        public long num;
        public string name;
        public Double scs;
    }
    class Program
    {
        static void Main(string[] args)
        {
            int j, k;
            string str;
            Console.Write("请输入学生人数:");
            str = Console.ReadLine();
            j = int.Parse(str);
            Student[] stu1;
            stu1 = new Student[j];
            for (k = 0; k < j; k++)//给二维数组赋初值
            {
                Console.Write("请输入第{0}位同学的姓名:", k + 1);
                str = Console.ReadLine();
                stu1[k].name = str;
                Console.Write("请输入第{0}位同学的总成绩:", k + 1);
                str = Console.ReadLine();
                stu1[k].scs = double.Parse(str);
            }
                for (int i = 0; i < stu1.Length; i++)//冒泡法排序
                {
                    for (int h = i; h < stu1.Length;h++)
                    {
                        if (stu1[i].scs > stu1[h].scs)
                        {
                            Student temp = stu1[i];
                            stu1[i] = stu1[h];
                            stu1[h] = temp;
                        }
                    }
                }
                foreach (Student temp in stu1)
                {
                    Console.WriteLine("姓名:{1},总成绩:{2}", temp.name, temp.scs);
                }
                Console.ReadLine();
            }
        }
    }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马