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

为何C语言中x=5时该for循环输出为2 4 6而非2 3 4 5 6?

为什么输入x=5时这段C代码输出是2 4 6而非预期的2 3 4 5 6?

你提供的代码如下:

int x;
printf("enter number >");
scanf("%d",&x);
for(int i=1;i<=x;i++)
{
i=i+1;                          
printf("%d ",i);
}

问题核心是你忽略了for循环的完整执行逻辑:每次循环体执行完毕后,for循环会自动执行增量表达式i++,再加上你在循环体内手动修改i=i+1,相当于每次循环i的实际增量是2,而非你预想的1。

输入x=5时的完整执行步骤:

  • 初始化i=1,判断1<=5成立,进入循环体
    • 执行i=i+1,i变为2,打印2
    • 循环体结束,执行for的增量操作i++,i变为3
  • 判断3<=5成立,进入循环体
    • 执行i=i+1,i变为4,打印4
    • 循环体结束,执行i++,i变为5
  • 判断5<=5成立,进入循环体
    • 执行i=i+1,i变为6,打印6
    • 循环体结束,执行i++,i变为7
  • 判断7<=5不成立,循环终止

最终输出自然是2 4 6。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:45:35