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

如何让for循环仅输出最终值?C++循环输出所有中间值问题求解

问题根因

你的输出语句cout << "Sum: " <<(sum =sum+i)<<endl;被放在了for循环内部的if (i % 3 == 0)分支中,每找到一个3的倍数完成累加后就会触发一次输出,因此会打印所有中间累加值。

修正方案

只需要把输出逻辑移动到for循环结束之后即可,同时优化了原有代码的不合理逻辑(输入提示位置错误、全局变量滥用),修正后完整代码如下:

#include <iostream>

using namespace std;

void findMultiples(int n){
    int sum = 0;
    for(int i = 0; i <= n; i++) {
        if (i % 3 == 0) {
            sum += i;
        }
    }
    // 循环结束后仅输出一次最终结果
    cout << "Sum: " << sum << endl;
}

int main() {
    int num;
    cout << "Enter a positive integer:" << endl;
    cin >> num;
    findMultiples(num);
    return 0;
}

修改点说明

  • 将sum变量从全局作用域移动到findMultiples函数内部,避免不必要的全局变量污染
  • 调整输入提示语句的位置到cin之前,符合用户交互逻辑
  • 循环内仅做累加计算,输出语句移到循环结束后,保证只打印最终求和结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:45:04