1.1.13

1.1.13 #

解答 #

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

代码 #

var m = 2;
var n = 3;
var array = new int[m, n];

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

Console.WriteLine("Origin");
PrintArray2D(array, m, n);
Console.WriteLine("Transposed");
PrintArrayTranspose2D(array, m, n);

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

        Console.WriteLine();
    }
}

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

        Console.WriteLine();
    }
}