• 例题:输入学生的各项资料,然后根据学生的分数,重新排序。重新复习结构体,集合,数组,for循环,冒泡排序,水平符的使用。


     class Program

        {

            struct student     //定义一个student的结构体

            {

                public string name;   //基本格式

                public int code;

                public int age;  

               public int fenshu;

            }

            static void Main(string[] args)

            {

                while (true)

                {   

                  ArrayList al = new ArrayList();  //定义一个新的集合

                    Console.Write("请输入人数:");

                    int renshu = Convert.ToInt32(Console .ReadLine ());

                    for (int i = 0; i < renshu ; i++)

                    {

                                           student r = new student();   //定义一个student类型r的变量,可以存储数值

                        Console.Write("请输入学生姓名:");

                        r.name = Console.ReadLine();

                        Console.Write("请输入学生学号:");

                        r.code = Convert.ToInt32(Console.ReadLine());

                        Console.Write("请输入学生年龄:");

                        r.age = Convert.ToInt32(Console.ReadLine());

                        Console.Write("请输入学生分数:");  

                       r.fenshu = Convert.ToInt32(Console.ReadLine());

                        al.Add(r);     //把r的值代入到al这个集合里

                  }

                    for (int i = 0; i < renshu; i++)      //按分数冒泡排序

                   {

                        for (int j = i; j < renshu -1; j++)

                        {

                            if (((student)al[i]).fenshu<((student)al[j+1]).fenshu  )   //好好看这句代码,不好理解,student类型里从al里取值

                            {   

                              student  zhong ;

                                zhong = (student)al[i] ;

                                al[i] = al[j + 1];

                                al[j + 1] = zhong;

                            }  

                       }  

                   }  

                   Console.WriteLine("排后学生顺序");

                    for (int i = 0; i < renshu ; i++)

                    {                                                     //水平符输出

                        Console.WriteLine("姓名"+((student)al[i]).name+" 学号"+((student)al[i]).code +" 分数"+((student)al[i]).fenshu  +" 年龄"+((student)al[i]).age  );

                    }

                }  

               Console.ReadLine();

  • 相关阅读:
    如何打开“USB调试”模式?
    Eclipse常用配置
    【luogu P5363】移动金币(博弈论)(DP)(数位DP)(MTT)
    【luogu P4245】【模板】任意模数多项式乘法(拆系数FFT)(MTT)
    【ybtoj高效进阶 21178】星际大战(并查集)
    【ybtoj高效进阶 21177】小小网格(杜教筛)(数论分块)(莫比乌斯反演)
    【luogu P4213】【模板】杜教筛(Sum)(数学)(整除分块)
    【luogu P6860】象棋与马(数学)(杜教筛)
    【luogu AT2376】Black and White Tree(结论)(博弈论)(二分图)
    SAM入门三题:字符串水题, LCS, P5546 [POI2000]公共串
  • 原文地址:https://www.cnblogs.com/275147378abc/p/4433463.html
Copyright © 2020-2023  润新知