c#输入一批学生成绩,以-1作为结束标记 。统计这批学生中,不及格(score<60)、及格(60<=score<70)、中等(70<=score<80)、良好(80<=score<90)、优秀(90<=score<=100)的人数。
时间: 2024-10-03 15:02:02 浏览: 17
在C#中,你可以创建一个循环来逐个读取学生的成绩,并根据条件计数每个分数段的学生人数。这里是一个简单的示例:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
Dictionary<int, int> gradeCounts = new Dictionary<int, int> { { -1, 0 } }; // 初始化一个字典来存储结果,-1用于结束标记
Console.WriteLine("请输入学生的成绩(-1表示结束):");
while (true)
{
string input = Console.ReadLine();
if (int.TryParse(input, out int score))
{
if (score == -1)
break; // 如果输入的是-1,则跳出循环
switch (score)
{
case int num when num < 60:
gradeCounts[59]++; // 不及格,计入59分组
break;
case int num when num >= 60 && num < 70:
gradeCounts[69]++; // 及格,计入69分组
break;
case int num when num >= 70 && num < 80:
gradeCounts[79]++; // 中等,计入79分组
break;
case int num when num >= 80 && num < 90:
gradeCounts[89]++; // 良好,计入89分组
break;
case int num when num >= 90:
gradeCounts[100]++; // 优秀,计入100分组
break;
default:
Console.WriteLine($"错误的分数:{input}");
break;
}
}
else
{
Console.WriteLine("无效输入,请输入数字或-1结束.");
}
}
foreach (KeyValuePair<int, int> count in gradeCounts)
{
Console.WriteLine($"得分在{count.Key}到{count.Key + 1}之间的学生有:{count.Value}人");
}
阅读全文