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

如何实现学生姓名与成绩的两列列表?现有代码仅输出一组数据求助

问题解决:学生成绩列表输入与输出修正

原代码问题点

  • 未使用数组存储成绩,仅靠单个变量grd,最终只能保留最后一个输入的成绩
  • 多余的外层inc循环会重复触发输入流程,完全不符合需求
  • 输出逻辑仅打印最后一次输入的姓名和成绩,没有遍历展示所有学生信息

修正后的完整代码

static void Main(string[] args)
{
    Console.WriteLine("Welcome to the grade book input the student and grades \n");

    // 用数组分别存储姓名和成绩,对应索引关联
    string[] students = new string[5]; // 测试用5个,如需26个改数字即可
    int[] grades = new int[5];
    Console.WriteLine("Names \t\t Grades");

    // 循环处理每个学生的姓名和成绩输入
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine($"Please enter name for student {i+1}");
        students[i] = Console.ReadLine();

        Console.WriteLine($"Please enter grade for {students[i]}");
        bool valid;
        int grd;
        do
        {
            valid = int.TryParse(Console.ReadLine(), out grd);
            if (!valid || grd > 100 || grd < 0)
                Console.WriteLine("Please enter a grade between 0-100");
            else
                Console.WriteLine($"Your grade is {grd}");
        } while (!valid || grd > 100 || grd < 0);
        grades[i] = grd;
    }

    // 打印所有学生的姓名和成绩列表
    Console.WriteLine("\n--- Final Grade List ---");
    Console.WriteLine("Names \t\t Grades");
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine($"{students[i]} \t\t {grades[i]}");
    }
}

关键修正说明

  • 新增int[] grades数组,与students数组通过索引一一对应,确保每个学生的成绩不会丢失
  • 移除多余的外层循环,改用单个循环依次处理每个学生的输入,流程更清晰
  • 输入完成后统一遍历数组打印所有信息,保证两列列表的对应关系
  • 数组索引从0开始,符合C#的数组规范,避免索引越界风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:40:29