C++ 在对角线上翻转矩阵

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 } } 也将矩阵赋值移

在第二个矩阵中,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
    }
}

也将矩阵赋值移到环外,如

,让我们考虑下面的矩阵

#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