如何在for循环求和系列中仅显示最终求和结果?
解决只显示最终求和结果的问题
嗨,这问题很常见啦——你现在的代码把cout << sum << " ";放在了循环内部,每次找到符合条件的数字并更新总和后,就会立刻打印当前的sum值,所以才会输出一连串中间结果。要只显示最终总和,只需要把输出语句移到循环外面就行!
另外,你代码里的第二个判断条件!(numbers%3 ==0 && numbers%5 ==0)其实可以简化成numbers%15 !=0(因为同时被3和5整除的数就是15的倍数),这样代码会更简洁易读。
修改后的代码如下:
//Sum of numbers which are divisible by either 3 or 5 (but not both) cout << "\nSum of numbers: "; int sum = 0; // 确保sum初始化了哦 for (int numbers = 1; numbers <= limit; numbers++ ) { if ( (numbers % 3 == 0 || numbers % 5 == 0) && numbers % 15 != 0 ) { sum += numbers; } } // 循环结束后再打印最终总和 cout << sum;
解释一下改动点:
- 把
cout移到了for循环的外面,循环结束后只打印一次最终的sum值 - 简化了条件判断,用
numbers%15 !=0代替原来的嵌套if,逻辑完全一致但更清晰 - 补充了sum的初始化(如果你的代码里没写的话,一定要加上,不然sum会是随机值)
这样运行后,就只会输出最终的总和啦!
内容的提问来源于stack exchange,提问作者Abdul Hayee
相关产品推荐
相关产品推荐

