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

C#作业问题:成绩统计程序输入90、1、101时计数器为2原因咨询

问题原因

你的代码对第一次输入的成绩做了重复计数,对应你输入的90、1、101三个值,具体执行流程如下:

  • 初始化counter=0,第一次输入成绩90,外层if判断90≥60且不是101,counter变为1
  • 进入while循环(此时grade=90≠101,满足循环条件),循环内第一个if再次判断当前的grade=90符合要求,counter再次+1变为2
  • 提示输入下一个成绩,输入1,grade更新为1
  • 回到while判断1≠101,进入循环,if判断1<60不计数,counter保持2
  • 提示输入下一个成绩,输入101,grade更新为101
  • 回到while判断101不满足循环条件,退出循环,输出counter=2

修复方案

删除外层单独的if计数逻辑即可,同时循环内不需要重复判断grade是否为101,循环条件已经保证进入循环的成绩都是有效录入值,修改后代码如下:

int grade, counter = 0;
Console.Write("Please enter a grade");
grade = int.Parse(Console.ReadLine());
while (grade != 101)
{
    if (grade >= 60)
    {
        counter++;
    }
    Console.WriteLine("Please enter another grade, if you no longer wish to enter grades, enter '101' ");
    grade = int.Parse(Console.ReadLine());
}
Console.WriteLine("There are " + counter + " grades that are over 60");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:15:04