黑马程序员技术交流社区

标题: 将用户输入的成绩排序问题 [打印本页]

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

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();
            }
        }
    }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2