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
相关产品推荐
相关产品推荐

