C语言编程,用键盘输入一个正数N,输出2N+1行的空心菱形

问题描述:

C语言编程,用键盘输入一个正数N,输出2N+1行的空心菱形
例如输入N=3,输出
1个回答 分类:综合 2014-12-09

问题解答:

我来补答
#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,这样的结构,呃,我感觉我是不是又写天书一样的代码出来了
 
 
展开全文阅读
剩余:2000
下一页:原创8
也许感兴趣的知识