本题要求实现一个函数,输出n行空心的数字金字塔。
函数接口定义:
void hollowPyramid( int n );
其中n
是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n
行空心的数字金字塔,请注意,最后一行的第一个数字前没有空格。
裁判测试程序样例:
#include <stdio.h>
void hollowPyramid ( int n );
int main()
{
int n;scanf("%d", &n);
hollowPyramid ( n );return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
5
输出样例:
1
2 2
3 3
4 4
555555555
代码如下:
void hollowPyramid( int n )
{
int blank;
for(int i=1;i<=n;i++)//行数
{
blank=n-i;
for(int b=0;b<blank;b++)//每行中数字前的空格数blank
{
printf(" ");
}
if(i==1) printf("1");//第一行
else if(i==n)//最后一行
{
for(int c=0;c<(2*n-1);c++)
{
printf("%d",i);
}
}
else//中间行
{
printf("%d",i);
for(int k=0;k<2*i-3;k++)
{
printf(" ");
}
printf("%d",i);
}
printf("\n");
}
}
遇到的错误:
在打印空心时的for循环条件使用了3个变量,导致运行超时且打印格式错误。