数字金字塔 (15 分)
本题要求实现函数输出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
分析:分析main函数,发现没有如何实现金字塔的方法。你需要发现形成金字塔的方法和规律,当我们输入n时,输出的金字塔从上往下数第一个数字前的空格的数量按照n-1递减的,以此便可以编写代码了。
代码实现:
void pyramid(int n)
{
int i = 0, j = 0;
for (i = 1;i <= n;i++)
{
for (j = 1;j <= n - i;j++)
{
printf(" ");
}
for (j = 1;j <= n;j++)
{
printf("%d ", i);
}
printf("\n");
}
}