You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现参赛者数组的类别分配输入与各类别人数统计?

解决方案

首先,我们需要创建一个和参赛者姓名数组长度一致的类别数组,用来存储每个参赛者对应的类别。因为要通过索引关联姓名和类别,使用for循环会更直接——可以通过同一个索引i同时操作姓名数组和类别数组。

完整实现代码

// 假设competitors已经由用户输入得到
string[] attendeenames = new string[competitors];
for (int i = 0; i < competitors; i++)
{
    Console.WriteLine($"请输入第{i+1}位参赛者的姓名");
    attendeenames[i] = Console.ReadLine();
}

// 创建存储类别的数组,和姓名数组一一对应
string[] participantCategories = new string[competitors];
// 统计各类别人数的变量
int countS = 0, countM = 0, countD = 0;

// 循环为每个参赛者分配类别
for (int i = 0; i < competitors; i++)
{
    string inputCategory;
    // 输入验证:确保用户输入有效的类别
    do
    {
        Console.WriteLine($"请为参赛者【{attendeenames[i]}】分配类别(可选值:S、M、D)");
        inputCategory = Console.ReadLine()?.Trim().ToUpper();
    } while (inputCategory != "S" && inputCategory != "M" && inputCategory != "D");

    // 存储类别
    participantCategories[i] = inputCategory;
    // 同步统计人数
    switch (inputCategory)
    {
        case "S":
            countS++;
            break;
        case "M":
            countM++;
            break;
        case "D":
            countD++;
            break;
    }
}

// 输出分配结果
Console.WriteLine("\n===== 参赛者类别分配结果 =====");
for (int i = 0; i < competitors; i++)
{
    Console.WriteLine($"姓名:{attendeenames[i]},类别:{participantCategories[i]}");
}

// 输出统计结果
Console.WriteLine("\n===== 类别人数统计 =====");
Console.WriteLine($"S类:{countS}人");
Console.WriteLine($"M类:{countM}人");
Console.WriteLine($"D类:{countD}人");

关键说明

  • 用for循环的原因:需要通过索引i同时关联attendeenames和participantCategories两个数组,foreach循环无法直接获取索引,所以for更合适。
  • 输入验证:通过do-while循环确保用户输入的是有效的类别值,避免无效输入导致后续逻辑出错。
  • 实时统计:在存储类别时直接更新计数变量,无需额外遍历数组统计,效率更高。

内容的提问来源于stack exchange,提问作者Shin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:01:05