之前看到網上的一些文章介紹如何打印菱形,但是和我當時題目要求的卻不一樣,網上的代碼輸出出來時每個相鄰菱形並沒有帶空格。
我現在所介紹的是每個相鄰菱形間都帶有空格的代碼。
習題及代碼如下:
用*輸出邊長為n的實心菱形。
*
* *
* * *
* *
*
printf("請輸入一個整數:");
int n = 0;
scanf("%d",&n);
//打印行數,注意必須是奇數行所以是2n-1
for (int i = 1; i <= 2*n - 1; i++)
{
//abs()是絕對值函數,每行的空格數=|n-行數|。注意這裡的空格數指的是*號之前的空格數!!
for (int j = 1; j <= abs(n - i); j++)
{
printf(" ");
}
//每行的“*”=n-|n-i|。注意因為除了第一行和最後一行外,其余行都需要打印多個*,所以只需要在*後面加入空格即可。
for (int k = 1; k <= n - abs(n -i); k++)
{
printf("* ");
}
printf("\n");
}