C++ 在对角线上翻转矩阵
在第二个矩阵中,90在左上角,10在右下角,最简单的方法是什么?我的大脑一片空白,我知道必须有任何简单的方法来解决这个问题。非常感谢您的帮助 以下是我想要实现的目标C++ 在对角线上翻转矩阵,c++,loops,for-loop,multidimensional-array,C++,Loops,For Loop,Multidimensional Array,在第二个矩阵中,90在左上角,10在右下角,最简单的方法是什么?我的大脑一片空白,我知道必须有任何简单的方法来解决这个问题。非常感谢您的帮助 以下是我想要实现的目标 #包括 使用名称空间std; void main(){ cout你可以在混响中循环 for (int i = 8; i >= 0; i--) { for (int j = 8; j >= 0; j--) { //Print element [j][i] here } } 也将矩阵赋值移
#包括
使用名称空间std;
void main(){
cout你可以在混响中循环
for (int i = 8; i >= 0; i--) {
for (int j = 8; j >= 0; j--) {
//Print element [j][i] here
}
}
也将矩阵赋值移到环外,如
,让我们考虑下面的矩阵
#define ROW 3
#define COL 4
int main()
{
int mat [ROW][COL] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
//...
return 0;
}
1/如果您想要反向矩阵
int-backwards_-mat[ROW][COL];
对于(尺寸i=0;i|
2/如果需要转置矩阵
int transposed_mat[COL][ROW];//交换尺寸
对于(尺寸i=0;i|
如果您打印这两个矩阵,则返回值为:
12 11 10 9
8765
4 3 2 1
而转换后的将是:
15.9
2 6 10
3711
4 8 12
您应该能够轻松地将其应用到矩阵中。您是指以下内容吗
#include <iostream>
#include <utility>
int main()
{
const size_t N = 9;
int matrix[N][N] =
{
{ 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,40,41,42,43,44,45 },
{ 46,47,48,49,50,51,52,53,54 },
{ 55,56,57,58,59,60,61,62,63 },
{ 64,65,66,67,68,69,70,71,72 },
{ 73,74,75,76,77,78,79,80,81 },
{ 82,83,84,85,86,87,88,89,90 }
};
for ( const auto &row : matrix )
{
for ( const auto &item : row ) std::cout << item << ' ';
std::cout << '\n';
}
std::cout << '\n';
for ( size_t i = 0; i < N; i++ )
{
for ( size_t j = 0; j < N - i - 1; j++ ) std::swap( matrix[i][j], matrix[N-j-1][N-i-1] );
}
for ( const auto &row : matrix )
{
for ( const auto &item : row ) std::cout << item << ' ';
std::cout << '\n';
}
std::cout << '\n';
}
std::transform肯定会成功job@IanCopenhaver至于我,我还没有理解这个问题。@Vladfrommosco我想Ian想对角镜像矩阵我已经根据我对问题的理解(以及我试图阅读屏幕截图缩略图中模糊的文本)确定了标题和描述。
int backwards_mat[ROW][COL];
for(size_t i = 0; i < ROW; ++i)
{
for(size_t j = 0; j < COL; ++j)
{
backwards_mat[i][j] = mat[ROW-1-i][COL-1-j];
}
}
int transposed_mat[COL][ROW]; //swap the dimensions
for(size_t i = 0; i < ROW; ++i)
{
for(size_t j = 0; j < COL; ++j)
{
transposed_mat[j][i] = mat[i][j];
}
}
#include <iostream>
#include <utility>
int main()
{
const size_t N = 9;
int matrix[N][N] =
{
{ 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,40,41,42,43,44,45 },
{ 46,47,48,49,50,51,52,53,54 },
{ 55,56,57,58,59,60,61,62,63 },
{ 64,65,66,67,68,69,70,71,72 },
{ 73,74,75,76,77,78,79,80,81 },
{ 82,83,84,85,86,87,88,89,90 }
};
for ( const auto &row : matrix )
{
for ( const auto &item : row ) std::cout << item << ' ';
std::cout << '\n';
}
std::cout << '\n';
for ( size_t i = 0; i < N; i++ )
{
for ( size_t j = 0; j < N - i - 1; j++ ) std::swap( matrix[i][j], matrix[N-j-1][N-i-1] );
}
for ( const auto &row : matrix )
{
for ( const auto &item : row ) std::cout << item << ' ';
std::cout << '\n';
}
std::cout << '\n';
}
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 40 41 42 43 44 45
46 47 48 49 50 51 52 53 54
55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71 72
73 74 75 76 77 78 79 80 81
82 83 84 85 86 87 88 89 90
90 81 72 63 54 45 36 27 18
89 80 71 62 53 44 35 26 17
88 79 70 61 52 43 34 25 16
87 78 69 60 51 42 33 24 15
86 77 68 59 50 41 32 23 14
85 76 67 58 49 40 31 22 13
84 75 66 57 48 39 30 21 12
83 74 65 56 47 38 29 20 11
82 73 64 55 46 37 28 19 10