算法题:矩阵旋转90度

来源:互联网 发布:win10好软件 编辑:程序博客网 时间:2024/06/14 15:10
#include <iostream>#include <iomanip>using namespace std;void Grial(int (*a)[5],int n){    //数组顺时针旋转90度。    //边界值的考虑让我小小的思考了一下。    int temp;    int startX = 0;    int startY = 0;    int j = 0;    while (startX < n/2)    {        startX = j;        for (int i = j; i < n - j-1; i++)        {            startY = i;            //不开辟空间,仅仅交换数据就可以轻松的做到。            temp = a[startX][startY];            a[startX][startY] = a[n - startY - 1][startX];            a[n - startY - 1][startX] = a[n - startX - 1][n - startY - 1];            a[n - startX - 1][n - startY - 1] = a[startY][n - startX - 1];            a[startY][n - startX - 1] = temp;        }        j++;    }}int main(){    int a[][5] = {                1,2,3,4,5,                6,7,8,9,10,                11,12,13,14,15,                16,17,18,19,20,                21,22,23,24,25                };    Grial(a,5);    for (int i = 0; i < 5; i++)    {        for (int j = 0; j < 5; j++)        {            cout << setw(4) << a[i][j];        }        cout << endl;    }    cout << endl;}
1 0
原创粉丝点击