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

C语言如何在每行添加数字并生成数字星号矩形图案?

解决数字与星号组合的矩形图案打印问题

嘿,我来帮你搞定这个数字加星号的矩形图案问题!你现在的代码只能输出纯星号矩形,要改成你想要的效果其实不难,只要调整内层循环的逻辑就行,我给你一步步说清楚:

首先,你原来的代码里有个小语法错误——int main{应该写成int main(),这个得先修正。

接下来,核心的改动是把原来的单个内层循环拆成两个:第一个循环负责打印当前行数对应的数字序列,第二个循环补全剩下的星号。比如第i行,就先打印1到i的数字,再打印num - i个星号,这样刚好凑够num个字符的长度。

修改后的完整代码如下:

#include <stdio.h>

int main() {
    int i, j;
    int num;
    printf("Enter a number from 1-9: ");
    scanf("%d", &num);
    
    for(i = 1; i <= num; i++) {
        // 打印1到当前行数i的数字
        for(j = 1; j <= i; j++) {
            printf("%d", j);
        }
        // 打印剩余的星号,数量为总长度num减去已打印的数字个数i
        for(j = 1; j <= num - i; j++) {
            printf("*");
        }
        // 每行结束后换行
        printf("\n");
    }
    return 0;
}

举个例子,当你输入6的时候,输出就会是你想要的效果:

1*****
12****
123***
1234**
12345*
123456

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:08:56