c语言程序输出杨辉三角形

那为什么这样也不对啊
#include<stdio.h>
void main()
{
int a[10][10],i,j,n=1;
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<10;i++)
{printf("\n");
for(j=0;j<n&&n<=10;j++)
{printf("%5d",a[i][j]);
n++;}
}
printf("\n");
}

#include <stdio.h>

int main()

{int n=12,i,j,a[20]={1,1};

for(i=0;i<=n;i++)

{for(j=0;j<n-i;j++)

   printf("  ");

 if(i>1)

  for(j=i;j>0;j--)

   a[j]+=a[j-1];

 for(j=0;j<=i;j++)  

printf("%4d",a[j]);

 printf("\n");

}

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-25

把for(j=0;j<n&&n<=10;j++)改为for(j=0;j<=i;j++)

#include<stdio.h>

void main()

{

int a[10][10],i,j,n=1;

for(i=0;i<10;i++)

{a[i][0]=1;

a[i][i]=1;}

for(i=2;i<10;i++)

for(j=1;j<i;j++)

a[i][j]=a[i-1][j]+a[i-1][j-1];

for(i=0;i<10;i++)

{printf("\n");

for(j=0;j<=i;j++)

{printf("%5d",a[i][j]);

n++;}

}

printf("\n");

}

追问

这个我知道。但为什么不能那样做啊  结果是

相似回答