您的位置:首页 > 其它

北邮OJ-271. 旋转图像-14计院上机(第二套)B

2017-03-23 00:53 393 查看
是时候查一查旋转变换的变换矩阵了= =两次了都是现场推的。

题目

#include <cstdio>
#define MAXSIZE 100
using namespace std;
int t,n,m;
int buf[MAXSIZE][MAXSIZE];
int matr[MAXSIZE][MAXSIZE];
void clockWise(){
//rotate
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
int offset=n-1;
matr[j][-i+offset]=buf[i][j];
}
}
//swap
int temp=n;
n=m;
m=temp;
//copy
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
buf[i][j]=matr[i][j];
}
}
}
int main(){
int operation;
scanf("%d",&t);
while (t--){
//input
scanf("%d%d",&n,&m);
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
scanf("%1d",&buf[i][j]);
}
}
scanf("%d",&operation);
//operate
switch(operation){
case 0:
break;
case 90:
clockWise();
break;
case 180:
clockWise();
clockWise();
break;
case 270:
clockWise();
clockWise();
clockWise();
break;
}
//output
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
printf("%d",buf[i][j]);
}
printf("\n");
}
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: