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.ReadLine();
}
}
}我的程序是这样的,照书上搬的,出现了异常,调试的时候提示说"索引超出了数组界限"
高手帮我看看啦,谢谢!

解决方案 »

  1.   

    for(int i=1;i<=5;i++)
    ========================〉
    for(int i=0;i<5;i++)
      

  2.   

    书上的有问题,改成这样:
    using System;class Test
    {
    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.Write("{0}", a[i, j]);
    }
    Console.WriteLine();
    }
    Console.ReadLine();
    }
    }
      

  3.   

    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++){            //这里出问题了,应把i<=5改为i<5
                                      //这里i的最大值为4
      a[i,0]=1;
      a[i,i]=1;
      for(int j=1;j<i;j++){                //这里j<i改为j<=i
       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.ReadLine();
    }
    }
    }
      

  4.   

    hoho 的确 刚才没看仔细 for(int j=1;j<i;j++)              //这里j<i改为j<=i这句也不对
      

  5.   

    1
               1   1
             1   2   1
           1   3   3   1
         1   4   6   4   1
    要想得到这种输出用以下代码:    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 k = 0; k < 31 - 2 * i; k++)      //对输出格式处理
                        Console.Write(" ");                    for (int j = 0; j <= i; j++)
                        {
                            Console.Write("  {0} ", a[i, j]);
                        }
                    Console.WriteLine();
                }
                Console.ReadLine();
            }
        }