using System;
class test{
  public static void Main(){
    int[,] a=new int[5,5];
    a[0,0]=1;
    for(int i=1;i<=5;i++){
      a[i,0]=1;
      a[i,i]=1;
      for(int j=1;j<i;j++){
        a[i,j]=a[i-1,j-1]+a[i-1,j];
      }
    }
    for(int i=0;i<5;i++){
      for(int j=0;j<i;j++){
        Console.WriteLine("{0}",a[i][j]);
      }
    Console.WriteLine();
    }
  }
}
 
因为我想知道为什么会出错,谢了  

解决方案 »

  1.   

    没分?!!!不过还是帮你分析下吧,首先呢,在打印数组的时候有错,i=0的时候,j也等与0 j<i就不成立,关于打印二维数组,你应该先考虑下是按行打印输出呢,还是还列,我就按行来说吧,你的语句for(int i=0;i <5;i++){
          for(int j=0;j <i;j++){
            Console.WriteLine("{0}",a[i][j]);
          }
        Console.WriteLine();
        } 
    应该改成for(int i=0;i <5;i++){
          for(int j=i;j <5;j++){
            Console.WriteLine("{0}",a[i][j]);
          }
        Console.WriteLine();
        } 
    在这两个循环中,i是控制列的输出,j控制行的输出,
    还有你这个Console.WriteLine("{0}",a[i][j]);是不是应该改成Console.WriteLine("{0}",a[i,j])为了这个我特意去翻了下书,因为本人很少使用多维数组,所以对多维数组不怎么了解。
    最后说一句,好好学习,天天向上!