输出空心的数字金字塔

时间:2023-01-10 20:59:48

函数接口定义:

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

思路:for嵌套,使用if判断,使用按位或’||‘(一个真则为真,全假为假),输出金字塔外层数字。

void hollowPyramid(int n)
{
int i, j;
for (i = 1; i <= n; i++)
{//i为行数
for (j = 1; j <= n - 1 + i; j++)
{//j为列数
if (i < n)
{
if ((j == n + 1 - i) || (j == n - 1 + i))//判断金字塔外层的数字位置
{//按位或,有真则为真,全假则假
printf("%d", i);
}
else
{
printf(" ");
}
}
else if (i == n)
{
printf("%d", i);
}
}
printf("\n");
}
}