题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
29)编写函数,打印出n(1<=n<=9)行如下图形,n从键盘读入。
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
……
题目代码
#include<stdio.h>
int main()
{
int n;
void prntri(int n);
printf("请输入要打印几行!\n");
scanf("%d",&n);
while(n>9||n<1)
{
printf("请输入大于等于1小于等于9的整数!\n");
scanf("%d",&n);
}
prntri(n);
return 0;
}
void prntri(int n)
{
//*****begin*********
//******end**********
}
参考代码
每一行分为三部分:输出空格、输出递增数字与空格、输出递减数字与空格:
#include<stdio.h>
int main()
{
int n;
void prntri(int n);
printf("请输入要打印几行!\n");
scanf("%d",&n);
while(n>9||n<1)
{
printf("请输入大于等于1小于等于9的整数!\n");
scanf("%d",&n);
}
prntri(n);
return 0;
}
void prntri(int n)
{
//*****begin*********
int i, j;
for(i=1; i<=n; i++){
for(j=2*n-2*i; j>=0; j--)
printf(" ");
for(j=1; j<=i; j++)
printf("%d ", j);
for(j=i-1; j>=1; j--)
printf("%d ", j);
printf("\n");
}
//******end**********
}
运行效果
请输入要打印几行!
8
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1