本题要求实现函数输出n行数字金字塔。 函数接口定义: void pyramid( int n ); 其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注 意每个数字后面跟一个空格。 裁判测试程序样例: #include <stdio.h> void pyramid( int n ); int main() { int n; scanf("%d", &n); pyramid(n); return 0; } /* 你的代码将被嵌在这里 */
时间: 2024-03-05 12:52:27 浏览: 13
以下是实现题目要求的完整代码:
```c
#include <stdio.h>
void pyramid(int n) {
int i, j, k, num;
for (i = 1; i <= n; i++) { // 控制行数
num = 1; // 每一行的初始数字为 1
for (j = 1; j <= n - i; j++) { // 控制空格数
printf(" ");
}
for (k = 1; k <= i; k++) { // 控制数字数
printf("%d ", num);
num++; // 每次输出一个数字之后,数字加 1
}
printf("\n"); // 每输出完一行后,换行
}
}
int main() {
int n;
scanf("%d", &n);
pyramid(n);
return 0;
}
```
解释:
题目要求输出数字金字塔,每行的数字从 1 开始递增,共有 n 行。我们可以采用三层循环来实现这个功能。
第一层循环用来控制行数,从 1 循环到 n,即循环 n 次。
第二层循环用来控制每一行数字前面的空格数,第 i 行前面应该有 n-i 个空格,因此循环 n-i 次,每次输出一个空格。
第三层循环用来控制每行输出的数字的个数,第 i 行应该输出 i 个数字,数字从 1 开始递增,因此每次输出一个数字后将 num 加 1。
最后,在每行输出完毕后,记得输出一个换行符,以便下一行数字能够正常输出。