逻辑清楚,就是不明白它怎么能排成这样,为什么要先打空格而不是*?
第一个for i=1;进入第二个for输出4个空格;第二个for循环结束,进入第三个for,输出一个*,第三个for循环结束;换行,i++第一个for循环结束;进入第二次大循环,此时i=2也就是第二行,然后以此类推
int i, j, k,h;
for(i=1; i<5; i++)
{
for(j=1;j<5-i;j++ )
{
printf(" ");
}
for(k=1;k<=i; k++ )
{
printf("*");
}
for(h=1;h<i;h++){
printf("*");
}
for(j=i;j<5;j++){
printf(" ");
}
printf("\n");
空格的数量和*的数量是有规律的,第一排是四个空格加一个*,第二排是三个空格加三个*,第三排是两个空格加五个*,第四排是一个空格加七个*。这样是有规律可循的。如果先打*,我也不知道该怎么算了。
你随便找个能打字的地方打字试一下
先按5下空格,再打5下*:
*****
先按5下*,再打5下空格:
*****