1个回答
展开全部
#include <stdio.h>
/* 能输出n个空格的函数 */
void repspace(int n) {
if (n == 0) return;
putchar(' ');
repspace(n-1);
}
/* b:第一个数字前有几个空格 a:第一个数字后有几个空格 */
/* e:输出到第几行为止 low:0代表输出的是上面那行,1代表是下面那行 */
void prline(int b, int a, int n, int e, int low) {
repspace(b);
putchar('0'+n);
if (a > 0) {
repspace(a);
putchar('0'+n);
}
putchar('\n');
if (low == 1) return;
if (e == n) return;
if (low == 0)
prline(b-1, a+2, n+1, e, 0);
prline(b, a, n, e, 1);
}
void pr(int n) {
prline(n, -1, 1, n+1, 0);
}
int main()
{
int n;
scanf("%d", &n);
pr(n);
return 0;
}
可以知道每行有两个数值,在第一个数字的“前面有几个空格”和“后面有几个空格”。如果后面大于0个空格,就说明数字要输出两个(一前一后)
然后还有一上一下,现在输出了 2 2 等会儿还要 2 2,这样的结构,呃,
我感觉我是不是又写天书一样的代码出来了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询