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

如何在for循环多次迭代中保留count变量的累加值?

解决方法:让count累加保留迭代结果

当然可以通过修改count的初始化方式实现,最直接的办法是把count定义为静态变量,此外还有引用传递、全局变量两种常用方案,下面逐一说明:

方案1:使用静态变量(修改初始化方式)

把check函数里的count声明为static,这样该变量只会在第一次调用check时初始化一次,后续调用时会保留之前的数值:

#include<bits/stdc++.h>
using namespace std;

int check(){
    int p,q;
    static int count=0; // 仅第一次调用时初始化,后续调用复用已有值
    cin>>p>>q;
    if(q-p>=2){
        count++;
    }
    cout<<count; // 每次输出当前累加的总数
}

int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        check();
    }
}

优点:改动最小,不需要修改函数参数或外部变量;缺点:count的状态被绑定在check函数内部,外部代码无法直接读取或修改它。

方案2:引用传递count(更灵活的模块化方案)

在main函数中定义count,通过引用参数传递给check函数,让函数直接修改main中的变量:

#include<bits/stdc++.h>
using namespace std;

// 用引用接收count,直接修改外部变量
void check(int &count){
    int p,q;
    cin>>p>>q;
    if(q-p>=2){
        count++;
    }
    cout<<count;
}

int main(){
    int n;
    cin>>n;
    int count=0; // 初始化放在main中,控制权更清晰
    for(int i=0;i<n;i++){
        check(count);
    }
}

优点:count的生命周期由main控制,代码耦合度低,便于后续扩展;缺点:需要修改函数的参数列表。

方案3:全局变量(不推荐)

把count定义在所有函数外部,成为全局变量,这样所有函数都能访问和修改它:

#include<bits/stdc++.h>
using namespace std;

int count=0; // 全局变量,所有函数可访问

int check(){
    int p,q;
    cin>>p>>q;
    if(q-p>=2){
        count++;
    }
    cout<<count;
}

int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        check();
    }
}

优点:不需要修改函数结构;缺点:全局变量容易导致意外的状态修改,代码调试和维护难度高,不推荐在实际项目中使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:31:14