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
相关产品推荐
相关产品推荐

