如何修改C#循环代码以实现每第5个输入数字的求和?
问题分析与修复方案
嘿,我看了你的代码,问题出在那个完全多余的for循环上——它不仅没帮你筛选出第5个输入的数字,反而每次都会把当前输入加到total里,还直接重置了count的值,导致你的计数逻辑彻底失效。
原代码的核心问题
- 嵌套的
for循环条件count <= 0只会执行一次,而且每次都会把当前input累加到total,所以所有输入的数字都被算进去了。 - 更糟的是,
for循环里直接把count重置为0,完全打乱了你原本用来统计输入次数的变量。
修复步骤
- 删掉没用的
for循环:它对你的需求毫无帮助,纯粹是添乱。 - 用计数变量判断第5个输入:每次输入后先让
count自增,然后检查count是否是5的倍数(也就是count % 5 == 0),如果是,就把当前输入的数字加到total里。
修改后的完整代码
int count = 0; double total = 0; Console.Write("Enter your number: "); int input = int.Parse(Console.ReadLine()); while (input != 0) { count++; // 仅累加第5、10、15...次输入的数字 if (count % 5 == 0) { total += input; } Console.Write("Enter your number: "); input = int.Parse(Console.ReadLine()); } Console.WriteLine("The sum of every 5th number is: {0}", total); Console.ReadKey();
额外小提示
如果用户输入了非数字内容,int.Parse会直接报错,你可以考虑换成int.TryParse来做输入验证,让程序更健壮。
内容的提问来源于stack exchange,提问作者Leroy de Smet
相关产品推荐
相关产品推荐

