C++矩阵变换

上下翻转

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;

int a[40][40];
int b[40][40];
int n , m;

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

int main()
{
cin >> n >> m;
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cin >> a[i][j];
}
}
zhuan();
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}

左右翻转

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;

int a[40][40];
int b[40][40];
int n , m;

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

int main()
{
cin >> n >> m;
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cin >> a[i][j];
}
}
zhuan();
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}

右转 90 度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <bits/stdc++.h>
using namespace std;

int a[40][40];
int b[40][40];
int n , m;

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

int main()
{
cin >> n >> m;
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cin >> a[i][j];
}
}
zhuan();
swap(n , m);
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}

左转 90 度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <bits/stdc++.h>
using namespace std;

int a[40][40];
int b[40][40];
int n , m;

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

int main()
{
cin >> n >> m;
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cin >> a[i][j];
}
}
zhuan();
swap(n , m);
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= m ; j++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}

C++矩阵变换
http://zhangyimin12345.github.io/posts/cmamfvq5i0007h836a5x55oh7/
作者
zhangyimin12345
发布于
2025年5月12日
更新于
2025年5月12日
许可协议