等腰杨辉三角的程序,到了高位就变形了?帮帮忙!怎么解决?

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:44:38
#include<stdio.h>
#define n 5
int main()
{
int i,j,a[n][n];
int k;

for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(i==j)
a[i][j]=1;
else if(j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}

for(i=0;i<n;i++)
{
for (j = 0; j < n - i; j ++)
{
printf(" ");
}
for(k=0;k<=i;k++)
{
if(k==i)
printf("%d",a[i][k]);
else
printf("%d ",a[i][k]);
}
printf("\n");
}
return 0;
}
当n=10的时候就不是等腰了!帮忙解决下!
a62517741
你的好象是歪的

晕,现在弄好了,就是把空格的位数调好了就可以了
#include<stdio.h>
#define n 10
int main()
{
int i,j,a[n][n];
int k;

for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(i==j)
a[i][j]=1;
else if(j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}

for(i=0;i<n;i++)
{
for (j = 0; j < n - i; j ++)
{
printf(" "); //
}
for(k=0;k<=i;k++)
{
if(k==i)
printf("%5d",a[i][k]); //
else
printf("%5d ",a[i][k]); //
}
printf("\n");
}
return 0;
}