#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int r,c,m;
int a[MAX][MAX],b[MAX][MAX];
void Flip(void);
void Rotating(void);
void printa(void);
int main(int argc, char *argv[]) {
int sel,i,j;
scanf("%d %d %d",&r,&c,&m);
for(i=0;i<r;i++)
for(j=0;j<c;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=m;i++){
scanf("%d",&sel);
if(sel==1) Flip();
else Rotating();
}
printf("%d %d\n",r,c);
printa();
return 0;
}
void printa(void){
int i,j;
for(i=0;i<r;i++){
for(j=0;j<c;j++){
if(j) printf(" %d",a[i][j]);
else printf("%d",a[i][j]);
}
printf("\n");
}
}
void Flip(void){
int i,j;
for(i=0;i<c;i++)
for(j=0;j<r;j++)
b[j][i]=a[r-j-1][i];
for(i=0;i<r;i++)
for(j=0;j<c;j++)
a[i][j]=b[i][j];
}
void Rotating(void){
int temp,i,j;
for(i=0;i<c;i++)
for(j=0;j<r;j++)
b[i][j]=a[r-j-1][i];
temp=r;
r=c;
c=temp;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
a[i][j]=b[i][j];
}
#include
#include
#define MAX 10
int r,c,m;
int a[MAX][MAX],b[MAX][MAX];
void Flip(void);
void Rotating(void);
void printa(void);
int main(int argc, char *argv[]) {
int sel,i,j;
scanf("%d %d %d",&r,&c,&m);
for(i=0;i<r;i++)
for(j=0;j<c;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=m;i++){
scanf("%d",&sel);
if(sel==1) Flip();
else Rotating();
}
printf("%d %d\n",r,c);
printa();
return 0;
}
void printa(void){
int i,j;
for(i=0;i<r;i++){
for(j=0;j<c;j++){
if(j) printf(" %d",a[i][j]);
else printf("%d",a[i][j]);
}
printf("\n");
}
}
void Flip(void){
int i,j;
for(i=0;i<c;i++)
for(j=0;j<r;j++)
b[j][i]=a[r-j-1][i];
for(i=0;i<r;i++)
for(j=0;j<c;j++)
a[i][j]=b[i][j];
}
void Rotating(void){
int temp,i,j;
for(i=0;i<c;i++)
for(j=0;j<r;j++)
b[i][j]=a[r-j-1][i];
temp=r;
r=c;
c=temp;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
a[i][j]=b[i][j];
}
題目要從B推回A,
你現在的寫法是從A變到B。
兩個地方要改:旋轉方向跟讀取mk的順序。