改了两小时还是十分,求大佬看看
查看原帖
改了两小时还是十分,求大佬看看
939536
snow_y楼主2023/4/30 14:14
#include<iostream>
using namespace std;
int n, m;
int arr[501][501], temp[501][501];
void stin(int y, int x, int r, int z) {
	for (int i = x - r; i <= x + r; i++)
	{
		for (int j = y - r; j <= y + r; j++)
		{
			temp[i][j] = arr[i][j];
		}
	}
	if (z == 0) {
		int y1 = y - r;
		for (int i = x - r; i <= x + r; i++)
		{
			int x1 = x + r;
			for (int j = y - r; j <= y + r; j++)
			{
				arr[i][j] = temp[x1][y1];
				x1--;
			}
			y1++;
		}
	}
	else {
		int y1 = x + r;
		for (int i = x - r; i <= x + r; i++)
		{
			int x1 = x - r;
			for (int j = y - r; j <= y + r; j++)
			{
				arr[i][j] = temp[x1][y1];
				x1++;
			}
			y1--;
		}
	}
}
int main() {
	int a[2001], cnt = 1;
	cin >> n >> m;
	for (int i = 0; i < m * 4; i++)
	{
		cin >> a[i];
	}
	for (int x = 1; x <=n; x++) {
		for (int y = 1; y <=n; y++) {
			arr[x][y] = cnt++;
		}
	}
	for (int i = 0; i < 4 * m; i += 4)
	{
		stin(a[i], a[i + 1], a[i + 2], a[i + 3]);
	}
	for (int x = 1; x <= n; x++)
	{
		for (int y = 1; y <=n; y++)
		{
			cout << arr[x][y] << ' ';
		}
		cout << endl;
	}
	return 0;
}
2023/4/30 14:14
加载中...