用printf输出一个由*号组成的菱形
时间: 2025-01-25 10:11:19 浏览: 28
要在C语言中使用`printf`函数输出一个由星号(`*`)组成的菱形,我们可以编写一个程序,通过控制循环和空格来实现。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int n, i, j, space;
printf("请输入菱形的行数(奇数):");
scanf("%d", &n);
// 确保行数为奇数
if (n % 2 == 0) {
printf("请输入一个奇数作为菱形的行数。\n");
return 1;
}
space = n / 2;
// 上半部分
for (i = 1; i <= n / 2 + 1; i++) {
for (j = 1; j <= space; j++) {
printf(" ");
}
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
space--;
}
space = 1;
// 下半部分
for (i = 1; i <= n / 2; i++) {
for (j = 1; j <= space; j++) {
printf(" ");
}
for (j = 1; j <= 2 * (n / 2 - i + 1) - 1; j++) {
printf("*");
}
printf("\n");
space++;
}
return 0;
}
```
这个程序的工作原理如下:
1. 首先,程序提示用户输入菱形的行数,并确保输入的是一个奇数。
2. 然后,程序通过两个嵌套的`for`循环来打印菱形的上半部分和下半部分。
3. 外层循环控制行数,内层循环控制空格和星号的数量。
通过调整内层循环中空格和星号的数量,程序能够正确地打印出由星号组成的菱形。
阅读全文
相关推荐



















