请编写一个简单程序,输入正整数n,输出n行W字菱形
时间: 2024-11-22 13:35:26 浏览: 8
当然,我可以帮你编写一个简单的C程序来实现这个需求。菱形是由空格和星号(*)组成的,我们可以通过嵌套循环来生成。这里是一个示例程序:
```c
#include <stdio.h>
// 函数定义,用于打印菱形的某一行
void printDiamondRow(int n, int spaces, int stars) {
for (int i = 0; i < spaces; i++) {
printf(" ");
}
for (int j = 0; j < stars; j++) {
printf("*");
}
printf("\n");
}
int main() {
int n;
printf("请输入正整数n: ");
scanf("%d", &n);
// 当n为奇数时,下半部分比上半部分多一个中间的列(*)
int middleColumn = n % 2 == 0 ? n / 2 : (n + 1) / 2;
for (int i = 0; i <= n; i++) {
// 上半部分:从1到(n-i)/2
if (i <= n / 2) {
printDiamondRow(i, middleColumn - i, 2 * i - 1);
} else { // 下半部分:从(n+1-i)/2到n
// 注意,下半部分的列数比上半部分少1个
printDiamondRow(i, middleColumn - (n - i), 2 * n - 2 * i);
}
}
return 0;
}
```
这个程序首先接收用户输入的正整数`n`,然后根据`n`的值生成相应大小的菱形。对于菱形每一行,计算出所需的空格数和星号数后分别打印。
当你运行这个程序并输入一个正整数时,它会输出对应的菱形。
阅读全文