首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-01-09 
自己写的打印杨辉三角出了点问题刚刚学了数组,试着打印杨辉三角,可是出了点问题当我命令输出俩行时,输出的

自己写的打印杨辉三角出了点问题
刚刚学了数组,试着打印杨辉三角,可是出了点问题
当我命令输出俩行时,输出的是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");
  }
}

热点排行