用c语言输入一个奇数n,输出一个由构成的n阶实心菱形
时间: 2024-12-11 15:23:43 浏览: 16
在 C 语言中,要输出一个由星号(*)组成的 n 阶实心菱形,可以利用嵌套循环来实现。这里给出一个简单的例子:
```c
#include <stdio.h>
#include <math.h>
void print_diamond(int n) {
int space = n - 1; // 上半部分空格的数量
int stars = 2 * n - 3; // 当前行的星号数量
for (int i = 0; i < n; i++) { // 两层循环,外层控制行数
for (int j = 0; j < space; j++) { // 内层控制每个行的空格
printf(" "); // 输出空格
}
for (int k = 0; k < stars; k++) { // 内层控制每个行的星号
printf("*"); // 输出星号
}
if (i == 0 || i == n - 1) { // 头部和尾部不需要空格
space--;
} else {
space += 2; // 其他行每增加一行就多两个空格
}
printf("\n"); // 每行结束后换行
stars -= 2; // 每行结束减少两个星号
}
}
int main() {
int n;
printf("请输入一个奇数 n: ");
scanf("%d", &n); // 输入奇数
if (n % 2 == 0) {
printf("输入错误,请输入一个奇数。\n");
return 0;
}
print_diamond(n);
return 0;
}
```
在这个程序中,`print_diamond` 函数接收一个奇数 `n`,并打印出对应的菱形。
阅读全文