```c
include
int main() {
int i, j, k, n;
printf("请输入菱形的行数(奇数):");
scanf("%d", &n);
// 上半部分菱形
for (i = 1; i <= n; i++) {
// 打印空格
for (j = 1; j <= n - i; j++) {
printf(" ");
}
// 打印星号
for (k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n");
}
// 下半部分菱形
for (i = n - 1; i >= 1; i--) {
// 打印空格
for (j = 1; j <= n - i; j++) {
printf(" ");
}
// 打印星号
for (k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
代码解释:
输入行数
程序首先提示用户输入菱形的行数,并读取该值。注意,这里要求输入的是奇数。
上半部分菱形
使用一个外层循环控制行数,从1到n。
内层第一个循环打印每行前面的空格,空格的数量是 `n - i`。
内层第二个循环打印每行的星号,星号的数量是 `2 * i - 1`。
下半部分菱形
使用一个外层循环从 `n - 1` 到1,控制行数。
内层第一个循环打印每行前面的空格,空格的数量同样是 `n - i`。
内层第二个循环打印每行的星号,星号的数量仍然是 `2 * i - 1`。
运行示例:
如果输入为5,程序将输出以下菱形图案:
```
*
*
*
*
*
*
*
*
*
```
这个程序通过嵌套循环实现了菱形的打印,逻辑清晰,易于理解。你可以根据需要修改行数,程序会相应地调整菱形的大小。