浙大版《C语言程序设计(第4版)》题目集参考答案
本题要求实现一个函数,输出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)
{
for (int i = 1; i <= n; i++)//第i层
{
for (int j = 1; j <= n - i; j++)//每层前空格
{
printf(" ");
}
if (i == 1)//顶层
{
printf("%d\n", i);
}
else if (i == n)//底层
{
for (int j = 1; j <= 2 * n - 1; j++)
{
printf("%d", i);
}
printf("\n");
}
else//中间层
{
printf("%d", i);
for (int j = 1; j <= 2 * (i - 1) - 1; j++)
{
printf(" ");
}
printf("%d\n", i);
}
}
}
欢迎提问和纠错,共同讨论一起进步!