题解 | #C翻转#
C翻转
https://www.nowcoder.com/practice/a591300637874f6ba2316a5fe3e94579
#include <bits/stdc++.h> using namespace std; int m[10][10],ba[10][10]; int a,b,x,y; int main() { for(int i=1; i<=5; i++){ for(int j=1; j<=5; j++){ cin>>m[i][j]; } } memcpy(ba,m,sizeof(m)); cin>>a>>b>>x>>y; // a=1顺时针 a=2逆时针 if(a == 1){ for(int i=x; i<x+b;i++){ for(int j=y; j<y+b; j++){ m[j-y+x][(b-1)-(i-x)+y] = ba[i][j]; } } }else{ for(int i=x; i<x+b;i++){ for(int j=y; j<y+b; j++){ m[(b-1)-(j-y)+x][i-x+y] = ba[i][j]; } } } for(int i=1; i<=5; i++){ for(int j=1; j<=5; j++){ cout<<m[i][j]<<" "; } cout<<endl; } return 0; }