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
思路就是:
可以先试着写出输出:
先输出空格再输出数字
空格:n-i,n是总行数,i是目前行数,找到空格和行数的关系就可以
⊡⊡⊡⊡1
⊡⊡⊡2
⊡⊡3
⊡4
5
再写出:
最后一行是2*n-1个
⊡⊡⊡⊡1
⊡⊡⊡2
⊡⊡3
⊡4
555555555
然后再写另一边:
还是先输出空格再输出数字
⊡⊡⊡⊡1
⊡⊡⊡2⊡2
⊡⊡3⊡⊡⊡3
⊡4⊡⊡⊡⊡⊡4
555555555
代码如下:
void hollowPyramid( int n )
{
int i=1;
int p = 1;
while(i <= n)
{
for(int j = n-i; j > 0; j--)
printf(" "); // 空格输入
if(i!=n)
printf("%d",i);
else
{for(int k = 2*n-1; k > 0; k--)
printf("%d",n);
}
if(i!=1&&i!=n)
{
for(int m = 2*p-1; m > 0;m--)
printf(" ");
printf("%d",i);
p++;
}
if(i!=n)
printf("\n"); // 控制换行
i++;
}
}