C语言输入不会,求指教

按如下图形打印杨辉三角,其特点是两个腰上的数都为1,其他位置上的每一个数是它上

一行相邻两个整数之和。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
.
.
.

Input

包含多组数据。每组数据占一行。

输入n(0 < n <= 20)表示输出杨辉三角的行数。

Output

对于每组测试数据,输出n行杨辉三角。

格式要求:

每个数字宽6个字符。请使用 printf("%-6d", a);

每行末尾无空格。

Sample Input

5

Sample Output

        1
     1     1
  1     2     1

1 3 3 1
1 4 6 4 1

不需要输入的 直接输出
#include
#define N 11
void main()
{int i,j,a[N][N];
for(i=1;i<N;i++)
{a[i][i]=1;
a[i][1]=1;
}
for(i=3;i<N;i++)
for(j=2;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<N;i++)
{for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}

囧,这个网上到处都有,而且貌似谭浩强的C教程上就有
http://jingyan.baidu.com/article/fea4511a1f454df7bb9125cd.html

输出一组的,网上确实有很多代码。如果修改为可以输出多组的呢?
1) 使用的数组按最大的维数定义,如20;或使用指针动态分析以满足维数变化的要求、
2) 使用 scanf 等完成维数的输出,再加上一个循环用于多组。

输出一组已经有了,按以上思路修改难度不大。

是要前部输入完再输出答案,还是输入一个行数就输出一组答案然后继续接受输入?
如果是第二种可以
while(scanf(%d,&num)!=EOF)
{...}
第一种自己申请个数组循环接收

  • 下面的程序经过vs2008验证通过
    #include
    void main()
    {

    int i=0,j=0,n=0,m=0;
    printf("请输入一个整数\n");
    scanf("%d\n",&n);

    for (i=1;i<=n;i++)
    {
    m=1;
    for (j=1;j<i;j++)
    {
    printf("%d",m);
    m=m*(i-j)/j;
    }
    printf("%d\n",m);
    }

}