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

为什么我编写的C语言循环会无限重复输出相同内容?

问题排查与修复

报错原因

  • 输入读取逻辑scanf("%d", &n);仅在循环外执行了一次,变量n的值在循环运行过程中没有更新。首次输入为3的倍数时,循环内每次判断n%3的结果永远为0,因此会无限输出(1)。
  • else分支的continue语句会直接进入下一轮循环,没有预留读取新输入的逻辑,进一步加剧了死循环问题。

修复后可运行代码

#include <stdio.h>
#include <stdlib.h>

int main(){
    int n;
    while(1){
        // 每次循环都读取新的输入值更新n
        scanf("%d", &n);
        if(n % 3 != 0){
            printf("(0)\n");
            break;
        }else{
            printf("(1)\n");
        }
    }
    return 0;
}

修复逻辑说明

  • 将输入读取语句移动到循环内部,每次循环都会读取新的用户输入更新n的值,避免一直使用首次输入的数值做判断。
  • 移除了冗余的continue语句,else分支代码执行完成后会自动进入下一轮循环,运行效果与原有逻辑一致,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:54:05