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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

让用户输入班级人数

让用户依次输入该班级每个学员的姓名和成绩(0-100之间)

按成绩进行排序,按成绩由高到低依次输出学生的姓名和成绩

评分

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

查看全部评分

1 个回复

倒序浏览
//学生成绩信息结构体
    struct student
    {
        public double score;
        public string name;
    }
    class Program
    {
        public static void Main(string[] args)
        {
            try
            {

                //学生总成绩
                double SumScore = 0.0;
                //学生平均成绩
                double average = 0.0;
                //提示用户输入班级人数
                Console.WriteLine("请输入班级人数:");
                int number = Convert.ToInt32(Console.ReadLine());
                //初始化结构
                student[] students = new student[number];

                //循环输入学生的姓名及成绩
                for (int i = 0; i < students.Length; i++)
                {

                    Console.WriteLine("请输入第{0}个学生姓名", i + 1);
                    string StuName = Console.ReadLine();
                    students[i] = new student();//初始化数组元素
                    students[i].name = StuName;//对数组元素进行赋值
                    Console.WriteLine("请输入第{0}个学生成绩(0-100之间)", i + 1);
                    double score = Convert.ToDouble(Console.ReadLine());
                    students[i].score = score;//对数组元素进行赋值
                    //每输入一次成绩相加一次
                    SumScore += score;
                }

                //选择排序法对成绩进行排序
                for (int i = 0; i < students.Length; i++)
                {
                    int max = i;
                    for (int j = i + 1; j < students.Length; j++)
                    {
                        if (students[max].score < students[j].score)
                        {
                            max = j;
                        }
                    }

                    if (max != i)
                    {
                        student s = students[max];
                        students[max] = students[i];
                        students[i] = s;
                    }
                }
                //计算机平均成绩
                average = (double)SumScore / number;
                Console.WriteLine("该班学生平均成绩为:{0}", average);
                Console.WriteLine("该班的成绩排名为:");
                //遍历数组中的每一个元素s
                foreach (student s in students)
                {
                    Console.WriteLine("姓名={0}  成绩={1}", s.name, s.score);
                }
            }
                //捕获异常
            catch
            {
                Console.WriteLine("你的输入有误,请重新运行本程序");
            }
                Console.ReadKey();

            }

        }

评分

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

查看全部评分

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