C语言实验——打印金字塔

来源:百度知道 编辑:UC知道 时间:2024/07/01 11:54:42
输入n值,打印下列形状的金字塔,其中n代表金字塔的层数。
Input
输入只有一个正整数n。
Output
打印金字塔图形,其中每个数字之间有一个空格。
Sample Input
3
Sample Output
1
1 2 1
1 2 3 2 1
Source

考虑到如果输入太大的数字,那么产生的金字塔形状必然乱套,因为屏幕输出不了那么多,所以限制用户输入1-20之间的数字。不想限制的话,把1-20判断语句去掉即可。
本例的范围使用30,是让大家看一下超出范围的输出。。。

/*输出数字金字塔*/
#include <stdio.h>
int main()
{
int number, lnumber, rnumber;
int rows,blank;

printf("Please input a number between 1 to 30:");
scanf("%d", &number);
while ( (number < 0 || number > 30) )
{
printf("Input wrong number! Please input again:");
scanf("%d", &number);
}
{
rows = (number - 1);
for (rows; rows >= 0; rows--)
{
for (blank = rows; blank >= 0; blank--)
printf(" ");
for (lnumber = 1; lnumber <= (number - rows); lnumber++)
{
printf("%d ", lnumber);
}
for (rnumber = (number - rows - 1); rnumber >= 1; rnumber--)
{
printf("%d ", rnumber);
}
p