发新话题
打印

c语言问题,高手请进!

程序一:
#include <stdio.h>
#include <math.h>
void main()
{
  int i,j;
  int a[10   [10   ;
  for(i=0;i<10;i++)     
   {
       for(j=0;j<10;j++)
   if(i==j||j==0)
    a[i   [j   =1;
    else
    a[i   [j   =a[i-1   [j-1   +a[i-1   [j   ;
   
}
      for(i=0;i<10;i++)
{
   for(j=0;j<=i;j++)
             printf("%5d",a[i   [j   );
     printf("
");
}   
}
程序二:
#include <stdio.h>
#include <math.h>
void main()
{
  int i,j;
  int a[10   [10   ;
   for(i=0;i<10;i++)     
     {
{for(j=0;j<=i;j++)
         if(i==j||j==0)
a[i   [j   =1;
else if
a[i   [j   =a[i-1   [j-1   +a[i-1   [j   ;
  printf("%-5d",a[i   [j   );
}
      printf("
");
     }   
}
我想程序二达到程序一的效果,但达不到.我个人觉得程序二应该没问题,但运行确出错了,我检查了好多遍,也没找到原因在哪里,我在程序二的思想是边赋值边输出,一维数组都可以,难道二维数组不可以吗;请高手指点一下!但第一个程序为什么能正常运行呢?

TOP

呵呵,不是这个问题,a[i   [j   =a[i-1   [j-1   +a[i-1   [j   ; 请问这句当i==0时怎么办,a[i-1   [j-1   数组越界啊!

TOP

发新话题