本题要求实现一个函数,输入一个正整数n(1<=n<=9),请你用C语言输出n行空心的数字金字塔。要求定义和调用函数hollow_pyramid(n)打印出n行空心的数字金字塔。
时间: 2023-10-10 10:13:20 浏览: 205
下面是一个可能的实现:
```c
#include <stdio.h>
// 打印n个空格
void print_spaces(int n) {
for (int i = 0; i < n; i++) {
printf(" ");
}
}
// 打印n个数字字符
void print_digits(int n) {
for (int i = 1; i <= n; i++) {
printf("%d", i);
}
}
// 打印空心金字塔的一层
void print_layer(int n, int level) {
// 打印前面的空格
print_spaces(n - level);
// 打印左边的数字字符
print_digits(level);
// 打印中间的空格
print_spaces(level - 1);
// 如果不是第一层和最后一层,才需要打印右边的数字字符
if (level != 1 && level != n) {
printf("%d", level);
}
// 换行
printf("\n");
}
// 打印n行空心金字塔
void hollow_pyramid(int n) {
for (int i = 1; i <= n; i++) {
print_layer(n, i);
}
}
int main() {
int n;
printf("请输入一个正整数n(1<=n<=9):");
scanf("%d", &n);
hollow_pyramid(n);
return 0;
}
```
这里定义了三个函数 `print_spaces`、`print_digits` 和 `print_layer`,分别用于打印一定数量的空格、数字字符和一层空心金字塔。`hollow_pyramid` 函数则使用 `print_layer` 函数打印出 n 行空心金字塔。在 `main` 函数中,先读入 n,然后调用 `hollow_pyramid` 函数。
阅读全文