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

如何编写while循环实现正数输入收集并计算平均值?

问题解决:收集正数并计算平均值的while循环实现

你的代码存在几个关键逻辑错误,无法实现需求,以下是修正后的完整实现及问题说明:

原代码问题点

  • 仅读取一次用户输入,循环内错误执行input++而非获取新输入
  • 平均值计算写死除以3,未统计实际输入的正数总数与总和
  • 未处理输入负数的情况,也没有避免无正数输入时的除以0错误

正确实现代码

int input;
double sum = 0;
int positiveCount = 0;

Console.WriteLine("请输入正数,输入0结束程序:");

while (true)
{
    input = int.Parse(Console.ReadLine());

    if (input == 0)
    {
        break; // 输入0时终止循环
    }

    if (input > 0)
    {
        sum += input;
        positiveCount++;
    }
    else
    {
        Console.WriteLine("请输入正数或0!");
    }
}

if (positiveCount > 0)
{
    double average = sum / positiveCount;
    Console.WriteLine($"所有正数的平均值为:{average:0.00}");
}
else
{
    Console.WriteLine("未输入任何正数,无法计算平均值");
}

代码说明

  • 用sum存储正数总和,positiveCount统计输入的正数数量
  • 无限循环配合break实现"输入0停止"的逻辑
  • 每次输入后先判断是否为终止条件,再判断是否为正数,负数则提示重新输入
  • 循环结束后先判断是否有有效输入,避免除以0的运行时错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:10:11