解决方案 »

  1.   


                int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
                foreach (int hang in matrix)
                {
                    Console.Write("\n");
                }
      

  2.   

      foreach (int hang in matrix)
     {
                   
                 Console.Write(hang + " ");
                   
                    Console.Write("\n");
     }
      

  3.   

    这是一个foreach,而且结束是全竖行排列的,能用双重foreach输出矩阵形式的结果吗?
      

  4.   

    这是一个foreach,能用双重foreach输出矩阵形式的结果吗?
      

  5.   

    这是一个foreach,能用双重foreach输出矩阵形式的结果吗?
    不能,用嵌套foreach就會報錯。
    int[,] matrix是一個二維數組,foreach(var hang in matrix)中hang的數據類型是int,并不是int[],
    是按行遍歷的,也就是逐行進行遍歷。
    1 2 3
    4 5 6
    7 8 9
    也就是只用一個foreach就可以遍歷這個數組。按照1 2 3 4 5 6 7 8 9的順序。
      

  6.   

             for (int i = 0; i < 3; i++) 
                 {
                     for (int j = 0; j < 3; j++) 
                     {
                         Console.Write(matrix[i,j] + "\t");
                     }
                     Console.WriteLine();
                 }                        
      

  7.   

    你写的遍历刚好是适合“可变数组”
    你可以用BZ的方法,或者用两个for
      

  8.   

    这是一个foreach,能用双重foreach输出矩阵形式的结果吗?
    不能,用嵌套foreach就會報錯。
    int[,] matrix是一個二維數組,foreach(var hang in matrix)中hang的數據類型是int,并不是int[],
    是按行遍歷的,也就是逐行進行遍歷。
    1 2 3
    4 5 6
    7 8 9
    也就是只用一個foreach就可以遍歷這個數組。按照1 2 3 4 5 6 7 8 9的順序。

    是因为这本书上说是可以用双重foreach来循环逐行输出数据的,请问这有可能吗?
      

  9.   

    foreach (int i in Enumerable.Range(0, arr.GetLength(0)))
        foreach (int j in Enumerable.Range(0, arr.GetLength(1)))
            Console.WriteLine(arr[i, j]);
      

  10.   

    foreach (int i in Enumerable.Range(0, arr.GetLength(0)))
         foreach (int j in Enumerable.Range(0, arr.GetLength(1)))
             Console.WriteLine(arr[j, i]);
      

  11.   

    你要输出矩阵用两个for不可以么?foreach是不可以两个嵌套的即使你上面没有报错
      

  12.   

    还有,能请教一下这个Enumerable.Range(0, arr.GetLength(0)和Enumerable.Range(0, arr.GetLength(1)是怎么起作用的吗?程序怎么认识第一个是读行的第二个是读列的?
      

  13.   

    arr.GetLength(0) 获得第一维的长度(行数),arr.GetLength(1)获得第二维的长度(列数)。
      

  14.   

    还有,能请教一下这个Enumerable.Range(0, arr.GetLength(0)和Enumerable.Range(0, arr.GetLength(1)是怎么起作用的吗?程序怎么认识第一个是读行的第二个是读列的?
    获取数组长度,然后得到0~长度-1作为序列,最后根据下标访问。
      

  15.   

    还有,能请教一下这个Enumerable.Range(0, arr.GetLength(0)和Enumerable.Range(0, arr.GetLength(1)是怎么起作用的吗?程序怎么认识第一个是读行的第二个是读列的?
    获取数组长度,然后得到0~长度-1作为序列,最后根据下标访问。
    好的,明白了,谢谢啦!
      

  16.   

    foreach (int i in Enumerable.Range(0, arr.GetLength(0)))
                {
                    foreach (int j in Enumerable.Range(0, arr.GetLength(1)))
                    {
                        Console.Write(arr[i, j] + " ");
                     }
                    Console.Write("\n");
                 } 
    经过各位的指点,终于明白啦,这样就可以用双重foreach输出二维数组的矩阵了。谢谢各位!