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

C#求用户输入正整数之和:代码计算异常,请求技术协助

问题排查与修正方案

嘿,我一眼就瞅到你代码里的核心问题啦,咱们来一步步把它搞定:

1. 致命的求和逻辑错误

你当前的代码里,求和部分写的是:

sum = input + input;

这意味着每次输入一个正整数时,sum都会被替换成当前输入数的两倍,而不是把这个数累加到之前的总和里!正确的累加逻辑应该是把当前输入的数加到已有的sum上,用这个写法:

sum += input;
// 等价于 sum = sum + input;

2. (可选但规范)变量名拼写修正

你定义的变量lenght是拼写错误,正确的英文拼写是length,虽然C#允许自定义变量名,但规范拼写能避免后续维护时的混淆。

3. (可选)负数输入的明确处理

你的代码已经跳过了负数输入,但可以加个else分支明确说明“负数将被跳过”,让代码可读性更强,不过这不是导致结果异常的原因。


修正后的完整代码

Console.WriteLine("Enter numbers length: ");
int length = Convert.ToInt32(Console.ReadLine());
int sum = 0;
int input = 0;
for(int i = 0; i < length; ++i)
{
    Console.WriteLine("Enter a number: ");
    input = Convert.ToInt32(Console.ReadLine());
    if(input >= 0)
    {
        sum += input; // 这里改成累加逻辑
    }
    else
    {
        Console.WriteLine("Negative number skipped."); // 可选:提示用户负数被跳过
    }
}
Console.WriteLine("The sum of the positive numbers is: " + sum);

现在运行这段代码,输入正整数的话就能得到正确的总和啦!比如输入长度3,然后依次输入2、5、3,总和会是10,而不是之前的6(3的两倍)。

内容的提问来源于stack exchange,提问作者Eros Danailov Donchev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:02:47