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

无法识别C代码问题:使用while循环打印1到21时出现无限循环

问题原因与修复方案

无限循环成因

你提供的代码出现无限循环的核心原因是while循环体未更新循环控制变量i:i初始值为0,运行过程中值始终不变,永远满足i < 20的判断条件,循环永远不会主动退出。

同时代码不匹配你的功能需求:你需要打印1到21的数值,现有循环条件最多只能打印到20,输出范围不符合预期。

修复后代码

#include<stdio.h>
int main(){
    int i = 0;
    while(i < 21) {
        printf(":%d", i + 1);
        i++;
    }
    return 0;
}

修改说明

  • 在while循环体内新增i++;语句,每次循环结束后将i的值加1,确保循环控制变量逐步递增,最终不满足循环条件时自动退出
  • 将循环条件从i < 20调整为i < 21,循环共执行21次,依次输出1到21的数值
  • 给while循环添加大括号包裹循环体,避免后续新增代码时出现逻辑错误(C语言中如果循环/判断语句未加大括号,只会将紧随其后的第一条语句识别为循环/判断执行体)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:09:00