turn里循环的变量名定重了
i改成j,j改成k试试
还有-j是怎么回事?
@[Wangyuqi2010](/user/1016748)
by han1219 @ 2024-08-06 13:44:55
```
#include <bits/stdc++.h>
using namespace std;
int g[510][510], tot, f[510][510];
int main(){
int n, m;
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
g[i][j] = ++tot;
for(int i = 1; i <= m; i++) {
int a, b, r, opt;
scanf("%d %d %d %d", &a, &b, &r, &opt);
if(opt == 0){
for(int i = a - r; i <= a + r; i++)
for(int j = b - r; j <= b + r; j++)
f[a - b + j][a + b - i] = g[i][j];
for(int i = a - r; i <= a + r; i++)
for(int j = b - r; j <= b + r; j++)
g[i][j] = f[i][j];
} else {
for(int i = a - r; i <= a + r; i++)
for(int j = b - r; j <= b + r; j++)
f[a + b - j][b - a + i] = g[i][j];
for(int i = a - r; i <= a + r; i++)
for(int j = b - r; j <= b + r; j++)
g[i][j] = f[i][j];
}
}
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) printf("%d ",g[i][j]);
printf("\n");
}
return 0;
}
```
by wayne_coder @ 2024-08-06 14:32:16
## 大佬这样好像也可以
```cpp
#include<iostream>
using namespace std;
int g[505][505],f[505][505];
int n,m,x,y,r,z,tot;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
g[i][j]=++tot;
for(int t=1;t<=m;t++){
cin>>x>>y>>r>>z;
if(z==1){
for(int i=(-1)*r;i<=r;i++){
for(int j=(-1)*r;j<=r;j++){
f[x-j][y+i]=g[x+i][y+j];
}
}
}else if(z==0){
for(int i=(-1)*r;i<=r;i++){
for(int j=(-1)*r;j<=r;j++){
f[x+j][y-i]=g[x+i][y+j];
}
}
}
for(int i=x-r;i<=x+r;i++){
for(int j=y-r;j<=y+r;j++){
g[i][j]=f[i][j];
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<g[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
```
by Wangyuqi2010 @ 2024-08-06 22:16:17
此帖完结!
by Wangyuqi2010 @ 2024-08-06 22:18:57