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

C语言for循环内变量赋值未生效,输出结果不符合预期

问题分析与解决

你的代码核心问题是for循环的条件写反了:
初始状态sum=0,sum>200的判断结果为false,导致循环体一次都没执行,直接跳到printf语句,所以N和sum保持了循环初始化后的状态(N=1,sum=0)。

for循环的执行逻辑是:

  1. 执行初始化语句(N=1)
  2. 判断循环条件,条件为true才进入循环体
  3. 执行循环体代码后,执行增量语句(N=N+1)
  4. 回到步骤2重复判断

你需要把循环条件改为sum <= 200,让循环持续执行直到sum超过200。另外注意,循环结束时N已经完成了最后一次自增,所以最后添加到sum里的数应该是N-1,需要修正printf的输出内容。

修正后的代码:

#include <stdio.h>

int N=0,sum=0;

int main(){
    for(N=1; sum <= 200; N=N+1){
        sum= sum + N;
    }
    printf("the last number added to reach 200 is %d with the sum being %d:", N-1, sum);   
    return 0;
}

运行这段代码会输出:the last number added to reach 200 is 20 with the sum being 210:,因为1到20的和是210,刚好超过200。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:12:08