學習C 也有一段時間了,今天做個比較難的練習
練習
star.PNG
思路
1.分析一下,可以把這個圖形拆成2個部分,一個正三角形,還有一個倒三角形。
2.可以先把要空出來的部分用別的符號代替
0005
00555
055555
3.應該先打印
5
555
5555
55555
再打印下面的這個形狀
0005
00555
055555
4.我們再簡化一下問題,可以先打印
555555
555555
555555
555555
5.根據(jù)步驟4得知,打印星星的關鍵在于
- 行數(shù)
一共需要打幾行 - 列數(shù)
每行要打幾顆星星
int main()
{
int i, j, k, l ;//兩個圖形需要兩個循環(huán)
//內(nèi)外兩個循環(huán),內(nèi)循環(huán)和外循環(huán)
for(i = 0; i < 5; i++)//需要打印的行數(shù)
{
for(j = 0;j <= 3-i;j++)//需要打印空格的數(shù)量
{
printf(" ");
}
for(j = 0; j <= i * 2; j++)//打印星星的數(shù)量
{
printf("*");
}
printf("\n");
}
for(k = 0;k < 4;k++)
{
for(l = 0;l <= k; l++)
{
printf(" ");
}
for(l = 0;l <= 6 - k * 2;l++)
{
printf("*");
}
printf("\n");
}
return 0;
}