文章
15
粉丝
446
获赞
2
访问
122.0k
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void f(int a[][100],int &n,int &m,int cmd)//m,n调用方式为引用
{
int s[10000],cnt=0;
switch(cmd)
{
case 1:{
for(int j=0;j<m;j++)
for(int i=n-1;i>=0;i--)
s[cnt++]=a[i][j];
swap(n,m);//交换m,n 即交换矩阵行列的值,以保持代码方便
break;
}
case 2:{
for(int i=0;i<n;i++)
for(int j=m-1;j>=0;j--)
s[cnt++]=a[i][j];
break;
}
default: ;
}
cnt=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
a[i][j]=s[cnt++];//从a中读取后,在放回a中,节省空间
return ;
}
int main()
{
int n,m,k;
while(cin>>n>>m>>k)
{
int a[100][100];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
for(int i=0;i<k;i++)
{
int cmd;
cin>>cmd;
if(cmd==3)//逆时针90即三次顺时针90
{
f(a,n,m,1);
f(a,n,m,1);
f(a,n,m,1);
}
else f(a,n,m,cmd);
}
fo...
登录后发布评论
暂无评论,来抢沙发