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

C语言使用循环打印倒序数字图案时代码错误如何解决

C语言循环打印图案问题解答

错误原因

第一个while循环版本的核心问题是内层while循环的条件5>=j>=i不符合C语言的运算规则:

  • C语言中关系运算符为左结合性,5>=j>=i会被拆分为(5 >= j) >= i执行
  • 第一步计算5 >= j会得到布尔值1(条件成立)或0(条件不成立)
  • 第二步用第一步得到的1/0和i比较大小

第一次外层循环i=1时,内层j从1开始递增,5>=j的结果是1,1>=1始终成立,直到j=6时5>=j结果为0,0>=1不成立,内层循环结束,正常输出第一行1 2 3 4 5。
当外层循环i>=2时,5>=j的结果最大为1,1>=i永远不成立,内层循环完全不会执行,因此不会输出后续行,最终仅能看到一行有效输出。

修复方案

将内层while循环的条件修改为和for循环版本一致的逻辑与写法即可:

while(j >= i && j <=5)

修改后的完整可运行代码:

#include<stdio.h>
int main()
{
    int i,j;
    i=1;
    while(i<=5)
    {
        j=i;
        while(j >= i && j <=5)
        {
            printf("%d ",j);
            ++j;
        }
        printf("\n");
        ++i;
    }
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:54:06