本題要求編寫程序,打印一個高度為
n的、由“*”組成的正菱形圖案。
輸入格式:
輸入在一行中給出一個正的奇數n。
輸出格式:
輸出由n行星號“*”組成的菱形,如樣例所示。每個星號后跟一個空格。
輸入樣例:
7
輸出樣例:
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
思路:
將菱形分為上半部分和下半部分。
對於上半部分,首先利用一個for循環表示輸出的行數,然后對於每一次的循環根據規律分別輸出相應的空格和“*”。
對於下半部分與上半部分思路一致。
代碼:
#include <stdio.h>
int main(){
int N;
scanf("%d", &N);
//上半部分
for(int i = 1; i <= N/2; i++){
for(int k = 1; k<=N-(2*i-1); k++){
printf(" ");
}
for(int j = 1; j <= 2*i-1; j++){
printf("* ");
}
printf("\n");
}
//下半部分
for(int i = N/2+1; i > 0; i--){
for(int k = 1; k<=N-(2*i-1); k++){
printf(" ");
}
for(int j = 1; j <= 2*i-1;j++){
printf("* ");
}
printf("\n");
}
return 0;
}