#include <iostream> using namespace std; int matrix[5][5]; void rotate(int a,int b,int x,int y){ int jz[b][b];//保存要翻转的矩阵 x--;//案例中下标都是从1开始,这里图方便在存储时采用从0开始 y--; for(int i=0;i<b;i++){ for(int j=0;j<b;j++){ jz[i][j]=matrix[i+x][j+y]; } } if(a==1){//顺时针 for(int i=0;i<b;i++){ for(int j=0;j<b;j++){ matrix[x+j][y+b-1-i]=jz[i][j];//翻转公式,可自行推导 } } } if(a==2){//逆时针 for(int i=0;i<b;i++){ for(int j=0;j<b;j++){ matrix[x+b-1-j][i+y]=jz[i][j]; } } } } int main() { int a0,a1,a2,a3,a4; while (cin >> a0>>a1>>a2>>a3>>a4) { //说是有多个案例,其实都只有一个 matrix[0][0]=a0; matrix[0][1]=a1; matrix[0][2]=a2; matrix[0][3]=a3; matrix[0][4]=a4; for(int i=1;i<5;i++){ for(int j=0;j<5;j++){ int t; cin>>t; matrix[i][j]=t; } } int m,n,x,y; cin>>m>>n>>x>>y; rotate(m,n,x,y); for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ cout<<matrix[i][j]<<' '; } cout<<endl; } } }