数字金字塔
1、题目及要求:
本题要求实现函数输出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;
}
/* 你的代码将被嵌在这里 */
输入样例:
5
输出样例:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
作者
C课程组
单位
浙江大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
2、解答:
void pyramid( int n )
{
int i, j, count = 0; /*i表示行数,j表示输出数字个数,count表示输出空格个数*/
for (i = 1; i <= n; i++) /*外层for循环用来控制行数*/
{
count = n-i; /*第i行数字前需要输出的空格数*/
while (count--) /*输出这些空格*/
printf(" ");
for (j = 1; j <= i; j++) /*第i行输出的 数字+一个空格 个数*/
printf("%d ", i); /*注意数字后面应输出一个空格*/
printf("\n"); /*第i行输出完毕,准备进行第i+1行的输出*/
}
return;
}
3、总结:
观察金字塔输出数字与行数之间的规律,利用循环语句巧妙地进行输出。