第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");
}
}