C++--ACM之杭电OJ--2135 矩阵旋转

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    char a[12][12];                              //必须用char型
    char b[12][12];
    char c[12][12];
    long long n,m,t;
    int i,j;
    while(cin>>n>>m)
    {
        memset(b,0,sizeof(b));
        memset(c,0,sizeof(c));
        getchar();
        for(i=0;i<n;i++)                //输入 
        {
            for(j=0;j<n;j++)
            {
                cin>>a[i][j];
            }

        }
        for(i=0;i<n;i++)                    //转换 
        {
            for(j=n-1;j>=0;j--)
            {
                b[i][j]=a[i][j];

            }
        }
        m=m%4;
        if(m==0)                                //顺时针旋转360度,或逆时针旋转360度   或不旋转 
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    cout<<b[i][j];
                }
                 cout<<endl;
            }
        }
        if(m==1||m==-3)                                  //顺时针旋转90度,或,逆时针旋转270度 
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                  c[i][j]=b[n-j-1][i];
                }
            }
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    cout<<c[i][j];
                }
                cout<<endl;
            }
        }
        if(m==2||m==-2)                                 //顺时针旋转180度或逆时针旋转180度 
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                  c[i][j]=b[n-1-i][n-1-j];
                }
            }
         for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    cout<<c[i][j];
                }
                cout<<endl;
            }
        }
        if(m==3||m==-1)                                   //顺时针旋转270度,或,逆时针旋转90度 
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                  c[i][j]=b[j][n-1-i];
                }
            }
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    cout<<c[i][j];
                }
                cout<<endl;
            }
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/William_Sunrise/article/details/82502932