@[liuenrui](/user/1141675)
楼主,我照着你的代码重写了一下,已AC,将就看吧
```cpp
#include<bits/stdc++.h>
using namespace std;
int t=0,n,m,x,y,r,z;//如题意
int a[514][514],ff[514][514];//a:原始数组,ff:临时数组
void nsj(int tx,int ty,int bj){//逆时针转
for(int i=tx-bj;i<=tx+bj;i++){
for(int j=ty-bj;j<=ty+bj;j++){
ff[i][j]=a[i][j];
}
}
//for(int i=ty-bj;i<=ty+bj;i++){
// for(int j=tx-bj;j<=tx+bj;j++){
// cout<<f[i][j]<<" ";
// }
// cout<<endl;
//}
int xl=tx-bj,yl=ty+bj;
for(int i=tx-bj;i<=tx+bj;i++){
for(int j=ty-bj;j<=ty+bj;j++){
a[i][j]=ff[xl][yl];
xl++;
}
yl--;
xl=tx-bj;
}
return;
}
void ssj(int tx,int ty,int bj){
for(int i=tx-bj;i<=tx+bj;i++){
for(int j=ty-bj;j<=ty+bj;j++){
ff[i][j]=a[i][j];
}
}
//for(int i=ty-bj;i<=ty+bj;i++){
// for(int j=tx-bj;j<=tx+bj;j++){
// cout<<f[i][j]<<" ";
// }
// cout<<endl;
//}
int xl=tx+bj,yl=ty-bj;
for(int i=tx-bj;i<=tx+bj;i++){
for(int j=ty-bj;j<=ty+bj;j++){
a[i][j]=ff[xl][yl];
xl--;
}
xl=tx+bj;
yl++;
}
return;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
t++;
a[i][j]=t;//把1~n^2输入数组
}
}
cin>>m;
while(m--){
cin>>x>>y>>r>>z;
if(z==0) ssj(x,y,r);
else nsj(x,y,r);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
/*
5 4
2 2 1 0
3 3 1 1
4 4 1 0
3 3 2 1
*/
}
```
by Yxy7952 @ 2024-08-31 10:25:53
@[yixingyou](/user/936717) 谢谢大佬orz
by liuenrui @ 2024-08-31 10:33:38