输出全0,求大佬
查看原帖
输出全0,求大佬
1016748
Wangyuqi2010楼主2024/8/6 13:24
//------------->y
//|坐标轴 
//|
//|
//|
// x
#include<iostream>
using namespace std;
int num[501][501];
int t[501][501];//临时转换 
int x,y,r,z,n,m;//如题意 
int tot,i1,j1,i2,j2;//tot初始化num数组
/*(i1,j1),(i2,j2)
i1=y-r,i2=y+r;
j1=x-r,j2=x+r; */
void turn(int i1,int j1,int i2,int j2,int z) {
	if(z==0) {
		for(int i=i1; i<=i2;i++) {
			for(int j=j1; j<=j2; j++) {
				t[j][-i]=num[i][j];
			}
		}//旋转 顺z==0 (x,y)->(y,-x);
	}
	else if(z==1){
		for(int i=i1; i<=i2;i++) {
			for(int j=j1; j<=j2; j++) {
				t[-j][i]=num[i][j];
			}
		}
	}//旋转 逆z==1 (x,y)->(-y,x);
	for(int i=i1; i<=i2;i++) {
		for(int j=j1; j<=j2; j++) {
			num[i][j]=t[i][j];
		}
	}
}
int main() {
	cin>>n>>m;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			num[i][j]=++tot;
		}
	}
	for(int i=1; i<=m; i++) {
		cin>>x>>y>>r>>z;
		i1=y-r,i2=y+r;
		j1=x-r,j2=x+r;
		turn(i1,j1,i2,j2,z);
	}
	for(int i=1; i<=n;i++) {
		for(int j=1; j<=n; j++) {
			cout<<num[i][j]<<' ';
		}
		cout<<endl;
	}
	return 0;
}
2024/8/6 13:24
加载中...