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]);
            }

解决方案 »

  1.   

    1
    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.
    这怎么回事啊.怎么运行结果下面还有异常?
      

  2.   

     for (i = 0; i < M; i++)
      

  3.   

    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++)//矩阵是5*5的,所以最大下标是[0-4][0-4]这里不能用i<=M
                {
                    Console.WriteLine();
                    for (j = 0; j <= i; j++)
                        Console.Write("{0} ", yhsj[i][j]);
                }
            }