static void Main(string[] args)
{
const int M = 5;
int[][] yhsj = new int[M][];
int i, j;
for (i = 0; i < 5; i++)
yhsj[i] = new int[i + 1];
for (i = 0; i < M; i++)
{
yhsj[i][0] = 1;
yhsj[i][i] = 1;
}
for (i = 2; i < 5; i++)
for (j = 1; j < i; j++)
yhsj[i][j] = yhsj[i - 1][j - 1] + yhsj[i - 1][j];
for (i = 0; i <=M; i++)
{
Console.WriteLine();
for (j = 0; j <= i; j++)
Console.Write("{0} ", yhsj[i][j]);
}
{
const int M = 5;
int[][] yhsj = new int[M][];
int i, j;
for (i = 0; i < 5; i++)
yhsj[i] = new int[i + 1];
for (i = 0; i < M; i++)
{
yhsj[i][0] = 1;
yhsj[i][i] = 1;
}
for (i = 2; i < 5; i++)
for (j = 1; j < i; j++)
yhsj[i][j] = yhsj[i - 1][j - 1] + yhsj[i - 1][j];
for (i = 0; i <=M; i++)
{
Console.WriteLine();
for (j = 0; j <= i; j++)
Console.Write("{0} ", yhsj[i][j]);
}
1 1
1 2 1
1 3 3 1
1 4 6 4 1
未处理的异常:System.IndexOutOfRangeException:索引超出了数组界限.
在b4.Program.Main<String[] args>位置D:\BegSharp\01\B\b4\b4\Program.cs:行号 28.
这怎么回事啊.怎么运行结果下面还有异常?
{
const int M = 5;
int[][] yhsj = new int[M][];
int i, j;
for (i = 0; i < 5; i++)
yhsj[i] = new int[i + 1];
for (i = 0; i < M; i++)
{
yhsj[i][0] = 1;
yhsj[i][i] = 1;
}
for (i = 2; i < 5; i++)
for (j = 1; j < i; j++)
yhsj[i][j] = yhsj[i - 1][j - 1] + yhsj[i - 1][j];
for (i = 0; i < M; i++)//矩阵是5*5的,所以最大下标是[0-4][0-4]这里不能用i<=M
{
Console.WriteLine();
for (j = 0; j <= i; j++)
Console.Write("{0} ", yhsj[i][j]);
}
}