1.1.13

上次更新:2019-04-17
发现了题解错误/代码缺陷/排版问题?请点这里:如何:提交反馈

解答

转置输出只需要在二重循环的时候将行、列输出顺序取反即可。

代码

static void Main(string[] args)
{
    int M = 2;
    int N = 3;
    int[,] array = new int[M, N];

    //新建一个二维数组
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            array[i, j] = i + j;
        }
    }

    Console.WriteLine("Origin");
    PrintArray2D(array, M, N);

    Console.WriteLine("Transposed");
    PrintArrayTranspose2D(array, M, N);
}

//转置输出
private static void PrintArrayTranspose2D(int[,] array, int rows, int columns)
{
    //交换行、列输出顺序
    for (int i = 0; i < columns; i++)
    {
        for (int j = 0; j < rows; j++)
        {
            Console.Write($"\t{array[j, i]}");
        }
        Console.Write("\n");
    }
}

//正常输出
private static void PrintArray2D(int[,] array, int rows, int columns)
{
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < columns; j++)
        {
            Console.Write($"\t{array[i, j]}");
        }
        Console.Write("\n");
    }
}
上一题 下一题