键盘接收n位同学姓名和成绩,输出分数最高的同学的姓名和分数,输出他们的平均分和高于平均分的同学姓名用C#
时间: 2024-10-08 16:19:22 浏览: 33
在C#中,你可以使用`Console.ReadLine()`函数接收用户输入的字符串,并通过字符串分割将姓名和成绩分开存储在一个字典或列表中。然后遍历数据找到最高分、计算平均分并筛选出高于平均分的学生。以下是一个简单的示例程序:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 创建一个列表来存储学生信息
List<(string Name, int Score)> students = new List<(string, int)>();
Console.WriteLine("请输入学生姓名和成绩,格式为 '姓名 分数',按回车结束:");
string input = "";
while ((input = Console.ReadLine()) != "")
{
string[] parts = input.Split(' ');
if (parts.Length == 2)
{
students.Add((parts[0], int.Parse(parts[1])));
}
}
// 找到最高分和平均分
int maxScore = students.Max(s => s.Score);
double averageScore = students.Average(s => s.Score);
// 输出结果
Console.WriteLine($"最高分学生的姓名和分数:{students.Find(s => s.Score == maxScore).Name} - {maxScore}");
Console.WriteLine($"所有学生的平均分为:{averageScore}");
// 筛选出高于平均分的学生并输出
List<(string Name, int Score)> aboveAverage = students.Where(s => s.Score > averageScore).ToList();
Console.WriteLine("高于平均分的学生及其分数:");
foreach (var student in aboveAverage)
{
Console.WriteLine($"{student.Name} - {student.Score}");
}
Console.ReadKey();
}
}
```
阅读全文