楼主大人,在下写了一个#include <iostream>
using namespace std;
void tranlateA();
void tranlateB();
void tranlateC();
void tranlateD();
int m, n ;
int a[100][100] = {0};
int b[100][100] = {0};
int main(void){
char c[100], ch;
cin >> m >> n;
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
cin >> a[i][j];
}
}
//getchar();
i = 0;
while(1){
ch = getchar();
if(ch >= 'A' && ch <='D')
{
c[i] = ch;
i++;
while((ch = getchar()) != '\n'){
c[i] = ch;
i++;
}
break;
}
}
for(int k=0; k<i; k++){
switch (c[k]){
case 'A':
tranlateA();
break;
case 'B':
tranlateB();
break;
case 'C':
tranlateC();
break;
case 'D':
tranlateD();
break;
}
}
for(i=0; i < m; i++){
for(int j=0; j<n; j++){
cout << b[i][j] << " ";
}
cout << endl;
}
return 0;
}
void tranlateA(){
//cout << "test A" << endl;
//顺时针旋转90度
int temp = 0;
temp = m;
m = n;
n =temp;
for(int i=0; i < m; i++){
for(int j=0; j<n; j++){
b[i][j] = a[n-1-j][i];
}
}
for(i=0; i < m; i++){
for(int j=0; j<n; j++){
a[i][j] = b[i][j];
//cout << b[i][j] << " ";
}
// cout << endl;
}
}
void tranlateB(){
//cout << "test B" << endl;
//逆时针旋转90度
int temp = 0;
temp = m;
m = n;
n =temp;
for(int i=0; i < m; i++){
for(int j=0; j<n; j++){
b[i][j] = a[j][n-i];
}
}
for(i=0; i < m; i++){
for(int j=0; j<n; j++){
a[i][j] = b[i][j];
// cout << b[i][j] << " ";
}
//cout << endl;
}
}
void tranlateC(){
//cout << "test C" << endl;
//左右翻转
for(int i=0; i < m; i++){
for(int j=0; j<n; j++){
b[i][j] = a[i][n-1-j];
}
}
for(i=0; i < m; i++){
for(int j=0; j<n; j++){
a[i][j] = b[i][j];
//cout << b[i][j] << " ";
}
//cout << endl;
}
}
void tranlateD(){
// cout << "test D" << endl;
//左右翻转
for(int i=0; i < m; i++){
for(int j=0; j<n; j++){
b[i][j] = a[m-1-i][j];
}
}
for(i=0; i < m; i++){
for(int j=0; j<n; j++){
a[i][j] = b[i][j];
}
}
}
|