读书人

自己写的打印杨辉三角出了点有关问题

发布时间: 2013-01-09 09:38:15 作者: rapoo

自己写的打印杨辉三角出了点问题
刚刚学了数组,试着打印杨辉三角,可是出了点问题
当我命令输出俩行时,输出的是1 -858993460 1 1
代码如下

#include <stdio.h>
main()
{
int i,j,m,a[20][20];
scanf ("%d",&m);//输入行数m
for (i=0;i<m;i++)//给对角线和左边第一列赋初值1
{
a[i][0]=1;
a[i][i]=1;
}
for (i=2;i<m;i++)//外循环控制行数
{
for (j=1;j<m-1;j++)//内循环,每行的j列
a[i][j]=(a[i-1][j])+(a[i-1][j-1]);
}
for (i=0;i<m;i++)
for (j=0;j<m;j++)
printf ("%d ",a[i][j]);

}

不知道错在哪了。。。。。。。纠结啊,检查了一遍又一遍
[解决办法]

#define N 11

int main()
{
int i,j;
int a[N][N]={0};

for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
{
a[i][j] = 1;
if(i >= 2 && j != 0 && j != i)
{
a[i][j] = a[i-1][j-1]+a[i-1][j];
}
printf("%5d ",a[i][j]);
}
printf("\n");
}

return 0;
}
[解决办法]
#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");
}
}

[解决办法]
#include <stdio.h>
main()
{
int i,j,m,a[20][20] ={0};
scanf ("%d",&m);//输入行数m
for (i=0;i<m;i++)//给对角线和左边第一列赋初值1
{
a[i][0]=1;
a[i][i]=1;
}
for (i=1;i<m;i++)//外循环控制行数
{
for (j=1;j<m-1;j++)//内循环,每行的j列
a[i][j]=(a[i-1][j])+(a[i-1][j-1]);
}
for (i=0;i<m;i++){
for (j=0;j<m;j++)
printf ("%d ",a[i][j]);
printf("\n");
}
}

读书人网 >C语言

热点推荐