```c
include
int main() {
int rows, i, j, space;
printf("Enter number of rows: ");
scanf("%d", &rows);
// 上半部分菱形
for (i = 1; i <= rows; i++) {
// 打印空格
for (space = 1; space <= rows - i; space++) {
printf(" ");
}
// 打印星号
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
// 下半部分菱形
for (i = rows - 1; i >= 1; i--) {
// 打印空格
for (space = 1; space <= rows - i; space++) {
printf(" ");
}
// 打印星号
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
这个程序首先提示用户输入菱形的行数,然后分别打印菱形的上半部分和下半部分。每个部分都是通过两个嵌套循环来实现的,第一个循环控制行数,第二个循环控制每行的空格和星号的数量。通过计算每行的空格和星号的数量与行数的关系来确定打印的内容,从而形成菱形的形状。