C - 矩阵旋转

时间:2015-06-04 15:12:35

标签: c matrix rotation

我正在用C编写一个程序,我需要一个M x N矩阵来顺时针旋转。我尝试了一些算法,但它们只适用于N x N矩阵。

矩阵{(1,4), (2,5), (3,6)}应变为{(3,2,1), (6,5,4)}

1 4
2 5  ->  3 2 1
3 6      6 5 4

我写了这段代码来转置矩阵,现在我不知道如何交换列:

void transpose(int matrix[MAX][MAX], int m, int n)
{
    int transpose[MAX][MAX], d, c;

    for (c = 0; c < m; c++)
      for( d = 0 ; d < n ; d++)
         transpose[d][c] = matrix[c][d];

    for (c = 0; c < n; c++)
        for(d = 0; d < m; d++)
            matrix[c][d] = transpose[c][d];
}

1 个答案:

答案 0 :(得分:1)

这是一个想法。我已经用Java实现了它,但它应该在C中以相同的方式工作。想法是从最后主要明智地读取数组行,并从头开始主要填充另一个数组列

*

输出:https://ideone.com/TveuB5