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

C语言循环打印倒序递减数字图案的代码问题求助

代码问题排查

你的核心循环逻辑在输入行数为5时本身可以输出正确图案,运行不符合预期是三个明确的逻辑问题:

  • 多余的输入阻塞:代码里写了scanf("%d", &i),程序启动后会停在等待输入的状态,如果你没有输入数字5,要么程序一直卡住无输出,要么输入其他数值时行列数不对,甚至会输出0、负数,违反「最小数字为1」的要求。
  • 硬编码初始值:把第一行的起始数字固定写为9,和图案规则没有绑定,后续调整图案参数时很容易出错。
  • 无边界校验:没有判断打印的数字不能小于1,输入行数大于5时必然输出非法值。
修正代码

固定输出题目要求的图案

直接去掉输入逻辑,固定循环5次即可,运行后直接输出目标图案,不需要额外输入:

#include <stdio.h>

int main() {
    int row, col;
    for (row = 0; row < 5; row++) {
        int num = 9 - row;
        for (col = 0; col < 5; col++) {
            printf("%d", num);
            num--;
        }
        printf("\n");
    }
    return 0;
}

保留输入功能的版本

因为题目要求最大数字为9、最小为1,行列数一致,这种规则下只能生成5行5列的图案,所以要加输入校验:

#include <stdio.h>

int main() {
    int size, row, col;
    scanf("%d", &size);
    if (size != 5) {
        printf("输入值非法,仅支持输入5生成符合规则的图案\n");
        return 1;
    }
    for (row = 0; row < size; row++) {
        int num = 9 - row;
        for (col = 0; col < size; col++) {
            printf("%d", num);
            num--;
        }
        printf("\n");
    }
    return 0;
}

运行后输出结果完全匹配要求:

98765
87654
76543
65432
54321

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:42:44