6-6 显示菱形(递归版)请编写函数,显示菱形。void Diamond(int height, char symbol); 说明:参数 height 为菱形的高,symbol 为显示字符。函数将在屏幕上显示高度和底宽为 height 由字符 symbol 组成的菱形。若 height 为偶数,或者小于等于 0,则不输出。 提示:需要利用前面作业中的 Show 函数、IsOdd 函数或 IsEven 函数,此外需要增加自用的内部函数。#include <stdio.h> int IsOdd(int number); int IsEven(int number); void Show(int number, char symbol); void Diamond(int height, char symbol); int main() { int n; char s; scanf("%d %c", &n, &s); Diamond(n, s); return 0; } ...... /* 你提交的代码将被嵌在这里 */
时间: 2024-01-19 19:03:09 浏览: 204
c的菱形显示代码函数
好的,这里是你需要的函数实现:
```c
#include <stdio.h>
int IsOdd(int number) {
return number % 2 == 1;
}
int IsEven(int number) {
return number % 2 == 0;
}
void Show(int number, char symbol) {
int i;
for (i = 0; i < number; i++) {
putchar(symbol);
}
}
void print_diamond(int height, char symbol, int i) {
if (i <= 0) {
return;
}
Show(height - i, ' ');
Show(2 * i - 1, symbol);
putchar('\n');
print_diamond(height, symbol, i - 1);
Show(height - i, ' ');
Show(2 * i - 1, symbol);
putchar('\n');
}
void Diamond(int height, char symbol) {
if (IsEven(height) || height <= 0) {
return;
}
print_diamond(height, symbol, height / 2 + 1);
}
```
在这个实现中,我们首先实现了之前作业中的 IsOdd、IsEven 和 Show 函数,然后实现了一个内部函数 print_diamond,用来递归打印菱形。最后实现了 Diamond 函数,用来判断输入的高度是否为奇数,如果是奇数则调用 print_diamond 函数打印菱形,否则不输出。
阅读全文