本题要求实现函数输出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
结尾无空行
解题思路
本题要输出一个金字塔,则可以先考虑金字塔有几层,然后是每一行的数字前有几个空格,用for循环输出,接着是考虑每一行的数字有几个,用for循环输出,最后则是输出一个换行。本题输入的 n 即为金字塔的层数,第一行空格数为 n-1 个,然后随金字塔的层数递减,每一行减1,接着再看每行的数字数,不难发现,数字的个数就是当前的行数 n ,最后注意每个数字的后面都跟了一个空格。
具体代码
void pyramid( int n )
{
for(int i=1;i<=n;i++)
{
//输出空格
for(int j=n-1;j>=i;j--)
{
printf(" ");
}
//输出数字
for(int j=1;j<=i;j++)
{
printf("%d ",i);
}
//换行
printf("\n");
}
}