求解!C语言问题 怎样一起输入多组数据,然后输入0;运行后多组数据结果一同输出

请高手帮忙解一下这个题:
杨辉三角
题目描述
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
上面的图形熟悉吗?它就是我们中学时候学过的杨辉三角。
输入
输入数据包含多组测试数据。
每组测试数据的输入只有一个正整数n(1≤n≤30),表示将要输出的杨辉三角的层数。
输入以0结束
输出
对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。
样例输入
2 3 0
样例输出
1
1 1

1
1 1
1 2 1

注意:不要那种输入一组数据按回车键出一个答案,再输入一组按回车键又出一个答案;最后以输入0结束!

第1个回答  2011-12-02
#include "stdio.h"
void print_circle(int n)//参数n是要打印的杨辉三角层数
{
int circle[30][30],i,j;
for(i=0;i<10;i++)
{
circle[i][0]=1;
}
for(i=0;i<n;i++)
{
circle[i][i]=1;
}

for(i=2;i<n;i++)
for(j=1;j<i;j++)
{
circle[i][j]=circle[i-1][j-1]+circle[i-1][j];
}
printf("杨辉三角如下:\n");
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
printf("%-4d",circle[i][j]);
}
printf("\n");
}
}
main()
{
int a[20];
int i=0,j;
while(scanf("%d",&a[i])==1&&a[i]!=0)
{
i++;
}
for(j=0;j<i;j++)
{
print_circle(a[j]);
printf("\n");
}
}本回答被提问者采纳
第2个回答  2011-12-02
思路:
#include <stdio.h>//杨辉三角
#define N 6
main()
{
int a[N][N]={0};
int i=0,j=0;
for(i=0;i<N;i++)
a[i][0]=a[i][i]=1;
for(i=2;i<N;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)printf("%d",a[i][j]);
printf("\n");
}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网