C代码实现:
#include <stdio.h>
void printDiamond(int n) {
int i, j, space = n - 1;
// 打印上半部分包括中间行
for (i = 0; i <= n; i++) {
// 打印空格
for (j = 0; j <= space; j++)
printf(" ");
// 打印星号
for (j = 1; j <= 2 * i - 1; j++)
printf("*");
printf("\n");
// 减少空格数量
space--;
}
// 打印下半部分
space = 1;
for (i = 1; i <= n - 1; i++) {
// 打印空格
for (j = 1; j <= space; j++)
printf(" ");
// 打印星号
for (j = 1; j <= 2 * (n - i) - 1; j++)
printf("*");
printf("\n");
// 增加空格数量
space++;
}
}
int main() {
int n;
printf("Please enter the size of the diamond (odd): ");
scanf("%d", &n);
if(n%2==0) {
printf("Input error! The size of the diamond should be odd.\n");
return -1;
}
printDiamond(n);
return 0;
}
代码思路:
1.定义一个函数printDiamond
,它接受一个整数参数n
,表示菱形的大小。
2.定义三个整数变量:i
和j
用于循环,space
用于跟踪每一行前面的空格数量。
3.外层循环,从0到n,用于控制菱形的上半部分和中间行。
4.内层循环,用于打印空格。空格的数量由space
变量控制,随着循环的进展而减少。
5.另一个内层循环,用于打印星号。星号的数量从1开始,每行增加2。