旋转矩阵

来源:互联网 发布:java nio buffer flip 编辑:程序博客网 时间:2024/04/28 05:38
/*请用最少的额外空间将一个M*N的矩阵旋转90度.*/#include <iostream>#include <stdio.h>using namespace std;const int N = 100;void rotate_left(int a[N][N], int m, int n){    int c_i = 0, c_j = 0;    for(int i = 0; i < n; i++)    {        for(int j = 0; j < m; j ++)        {            c_i = j;            c_j = n - i - 1;            cout << a[c_i][c_j] << " ";        }        cout << endl;    }    cout << endl;}void rotate_right(int a[N][N], int m, int n){    int c_i = 0, c_j = 0;    for(int i = 0; i < n; i ++)    {        for(int j = 0; j < m; j ++)        {            c_j = i;            c_i = m - j - 1;            cout << a[c_i][c_j] << " ";        }        cout << endl;    }    cout << endl;}int main(){    freopen("data.txt", "r", stdin);    int n, m;    int a[N][N];    while(cin >> m >> n)    {        for(int i = 0; i < m; i ++)            for(int j = 0; j < n; j ++)                cin >> a[i][j];        cout << "Rotated 90 degrees to the left:\n";        rotate_left(a, m, n);        cout << "Rotated 90 degrees to the right:\n";        rotate_right(a, m, n);    }    fclose(stdin);    return 0;}