日期:2014-05-19  浏览次数:20877 次

初学C#,关于杨辉三角的问题!
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();
}
}
}

我的程序是这样的,照书上搬的,出现了异常,调试的时候提示说 "索引超出了数组界限 "
高手帮我看看啦,谢谢!

------解决方案--------------------
书上的有问题,改成这样:
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();
}
}

------解决方案--------------------
hoho 的确 刚才没看仔细 for(int j=1;j <i;j++) //这里j <i改为j <=i

这句也不对