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

C语言实现金字塔形数字图案遇问题:输出与预期不符求解决

修正金字塔形数字图案的C语言代码

你需要实现的金字塔形数字图案预期输出如下:

1
    1  2  1
 1  2  3  2  1

原代码运行后输出不符合预期,实际结果为:

1
 333
55555

原代码问题分析

  • 数字输出逻辑错误:第二个for循环固定输出2*i-1,导致每行都是相同数字,无法生成从1递增到当前行号再递减回1的序列。
  • 排版格式缺失:未控制数字间的间距,也未正确计算每行前置空格数,导致金字塔错位。

修正后的代码

#include<stdio.h>

int main()
{
    int n, i, j, k;
    printf("Enter the number of lines ");
    scanf("%d", &n);

    for(i = 1; i <= n; i++)
    {
        // 打印前置空格,保证金字塔居中
        for(j = 1; j <= 3*(n - i); j++)
            printf(" ");

        // 打印1到当前行号的递增序列
        for(k = 1; k <= i; k++)
            printf("%3d", k);

        // 打印当前行号-1到1的递减序列
        for(k = i - 1; k >= 1; k--)
            printf("%3d", k);

        printf("\n");
    }

    return 0;
}

代码说明

  • 前置空格:通过3*(n-i)计算每行需要的前置空格数,配合%3d的数字格式,确保整体排版居中。
  • 数字序列:拆分为两个循环,先递增到当前行号,再递减回1,完全匹配预期的图案结构。
  • 格式控制:%3d让每个数字占3个字符,自动补充空格,保证数字间的间距一致,形成整齐的金字塔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:52