文章

8

粉丝

216

获赞

20

访问

67.6k

头像
旋转矩阵;寻找经过变换后的坐标关系;注意多组输入
推荐阅读
P1221 同济大学机试题
发布于2021年4月7日 21:31
阅读数 9.1k

​​​​​​

#include<bits/stdc++.h>
using namespace std;
//n行数;m列数
/*
	顺时针90°
		(i,j)->(j, n-1-i)
*/
/*
	沿纵向对称轴翻折:(i, j)->(i, m-1-j)
*/
/*
	逆时针90°
		(i,j)->(m-1-j, i)
*/
int n, m, k;
int a[100][100] = {0};
int b[100][100] = {0};
int num[100] = {0};

void Shun90(){
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++)
			b[j][n-1-i] = a[i][j];
	}
	int temp = n;
	n = m;
	m = temp;
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++)
			a[i][j] = b[i][j];
	}
}

void Fold(){
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++)
			b[i][m-1-j] = a[i][j];
	}
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++)
			a[i][j] = b[i][j];
	}
}

void Ni90(){
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++)
			b[m-1-j][i] = a[i][j];
	}
	int temp = n;
	n = m;
	m = temp;
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++)
			a[i][j] = b[i][j];
	}
}
int main(){
	//注意多组数据输入
	while(~scanf("%d%d%d", &n,&am...
登录查看完整内容


登录后发布评论

1 条评论
13813246726
2021年5月2日 14:42

每次旋转操作后把n和m交换yes

赞(0)