矩阵的90度旋转

#include <iostream>
using namespace std;

void shift_print(int **a, int temp1, int temp2)
{
    //shift_square
    for(int i = 0; i < temp2 - temp1; i++)
    {
        int temp_s = a[temp1][temp1 + i];
        a[temp1][temp1 + i] = a[temp2 - i][temp1];
        a[temp2 - i][temp1] = a[temp2][temp2 - i];
        a[temp2][temp2 - i] = a[temp1 + i][temp2];
        a[temp1 + i][temp2] = temp_s;
    }
} 

int main()
{
    cout << "please input rows/columns: ";
    int rows_columns; cin >> rows_columns;
    int **nums = new int *[rows_columns];
    for(int i = 0; i < rows_columns; i++)
        nums[i] = new int [rows_columns];

    cout << "please input the data: ";
    for(int i = 0; i < rows_columns; i++)
    {
        for(int ii = 0; ii < rows_columns; ii++)
        {
            cin >> nums[i][ii];
        }
    }

    cout << "the row data is: " << endl;
    for(int i = 0; i < rows_columns; i++)
    {
        for(int ii = 0; ii < rows_columns; ii++)
        {
            cout << nums[i][ii] << ' ';
        }
        cout << endl;
    }

    int temp1 = 0, temp2 = rows_columns - 1;
    while(temp1 < temp2 )
    {
        shift_print(nums, temp1, temp2);
        temp1++; temp2--;
    }
    
    cout << "the output data is: " << endl;
        for(int i = 0; i < rows_columns; i++)
    {
        for(int ii = 0; ii < rows_columns; ii++)
        {
            cout << nums[i][ii] << ' ';
        }
        cout << endl;
    }
    delete [] nums;
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Cris_7/article/details/82929169