一个空心菱形怎么编程

时间:2025-03-03 23:55:50 明星趣事

```c

include

// 函数原型声明

void show(int n, char c);

int main() {

int n;

printf("请输入菱形的高: ");

scanf("%d", &n);

// 检查输入的行数是否为奇数

if (n % 2 != 0) {

show(n, '*');

} else {

printf("Error! 行数必须为奇数。\n");

}

return 0;

}

// 打印菱形的函数

void show(int n, char c) {

int i;

// 打印上半部分

for (i = 1; i <= n; i++) {

// 打印前面的空格

for (int j = 1; j <= n - i; j++) {

printf(" ");

}

// 打印星号和空格

for (int j = 1; j <= 2 * i - 1; j++) {

if (j == 1 || j == 2 * i - 1) {

printf("*");

} else {

printf(" ");

}

}

// 打印星号

if (i != n) {

printf("*");

}

printf("\n");

}

// 打印下半部分

for (i = n - 1; i >= 1; i--) {

// 打印前面的空格

for (int j = 1; j <= n - i; j++) {

printf(" ");

}

// 打印星号和空格

for (int j = 1; j <= 2 * i - 1; j++) {

if (j == 1 || j == 2 * i - 1) {

printf("*");

} else {

printf(" ");

}

}

// 打印星号

if (i != 1) {

printf("*");

}

printf("\n");

}

}

```

这个程序首先检查输入的行数是否为奇数,如果是奇数,则调用`show`函数打印空心菱形;否则,输出错误信息。`show`函数使用两层循环分别打印菱形的上半部分和下半部分。在每一行中,先打印一定数量的空格,然后打印星号和空格,最后在行尾打印一个星号(除了最后一行)。