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

如何用C语言实现递增数字三角+递减星号三角的组合图案?

解决C语言星号递减的图案输出问题

需求说明

需要实现由递增数字序列与递减星号序列组合的正方形图案,预期输出如下:

1********
12*******
123******
1234*****
12345****
123456***
1234567**
12345678*
123456789

现有代码问题

你当前的代码中,星号的循环是固定输出8个,没有根据行数动态调整数量,导致每行星号数一致:

#include <stdio.h>

int main()
{
    int i, j;
    for(i=1; i<=9; i++)
    {
        for (j=1; j<=i; j++)
        {
            printf ("%d",j);
        }

        int k;
        for(k=8; k>0; k--) {
            printf("*");
        }

        printf("\n");
    }
}

当前错误输出:

1********
12********
123********
1234********
12345********
123456********
1234567********
12345678********
123456789********

修复方案

问题出在星号的循环条件上:每一行的总字符数是9(数字+星号),数字的个数等于当前行数i,因此星号的数量应为9 - i。修改星号循环的起始值和条件即可:

修改后的代码:

#include <stdio.h>

int main()
{
    int i, j;
    for(i=1; i<=9; i++)
    {
        // 打印递增数字
        for (j=1; j<=i; j++)
        {
            printf("%d", j);
        }

        // 打印递减星号:数量为9 - i
        int k;
        for(k=9 - i; k>0; k--) {
            printf("*");
        }

        printf("\n");
    }
}

验证输出

修改后运行代码,就能得到预期的图案:

1********
12*******
123******
1234*****
12345****
123456***
1234567**
12345678*
123456789

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:05:20