#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;
}
C++--ACM之杭电OJ--2135 矩阵旋转
猜你喜欢
转载自blog.csdn.net/William_Sunrise/article/details/82502932
今日推荐
周排行