魔鬼中 2018-12-25 15:36 采纳率: 81.8%
浏览 1283
已采纳

C#控制台程序,怎么把用户输入的姓名和成绩中的前三名(考虑并列情况)输出

用户输入姓名和成绩

查找出成绩的前三名,并按照成绩高低输出姓名,若出现更多与前三相同的成绩,需要把成绩相同的姓名按录入顺序输出

  • 写回答

2条回答 默认 最新

  • Johan. 博客专家认证 2018-12-26 01:58
    关注

    下面实现中的逻辑,没有将并列的逻辑写出来,从功能上来说已经实现过半,在这个基础上扩展实现并列的情况。

    图片说明

    Main 方法中的代码

    while (true)
                {
                    Console.WriteLine("输入学员姓名和成绩,姓名和成绩用中文逗号分隔");
    
                    var key = Console.ReadLine();
                    if (key == "exit") break;
    
                    var studentInfo = key.Split(',');
                    if (studentInfo.Length < 2) continue;
    
                    float.TryParse(studentInfo[1], out var score);
    
                    var student = new Student
                    {
                        Name = studentInfo[0],
                        Score = score,
                    };
    
                    studentList.Add(student); 
                }
    
                QueryTop();
    

    QueryTop 方法代码

    static List<Student> studentList = new List<Student>();
    public static void QueryTop()
    {
            var list = studentList.OrderByDescending(x => x.Score).ToList();
            for (int i = 0; i < list.Count; i++)
            {
                    if (i > 2) break;
                    var item = list[i];
    
                    Console.Write($"第{i + 1}名");
                    Console.Write($" {item.Name}, {item.Score}");
    
                    Console.WriteLine();
            }
    
            Console.WriteLine("按任意键退出...");
            Console.ReadKey();
    }
    

    Student 类

        /// <summary>
        /// 学员
        /// </summary>
        public class Student
        {
            /// <summary>
            /// 姓名
            /// </summary>
            public string Name { get; set; }
            /// <summary>
            /// 成绩
            /// </summary>
            public float Score { get; set; }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏