无法切换2D数组中的列

时间:2015-10-24 14:29:18

标签: c++

如何在不使用函数等的情况下切换2D数组的列。

#include <iostream>

using namespace std;

int main()
{
 int arr[3][4]= {
 {1,2,3,4},
 {5,6,7,8},
 {6,4,5,3}
 };
 cout << "Before change: "<<endl;
 for (int row=0;row<3;row++){
    for (int col=0;col<4;col++){
        cout << arr[row][col]<<" ";
    }
    cout <<endl;
 }
 cout << "After the row change: "<<endl;
for (int row=2;row>=0;row--){
    for(int col=0;col<4;col++){
        cout<<arr[row][col]<<" ";
    }
    cout<<endl;
}

我可以使用我知道的廉价技巧来切换行,但是我在切换列时遇到了问题。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

基于“想要交换第2和第4列”

要交换第2和第4列,只需添加:

int temp;
for(int row=0;row<4;row++){
        temp=arr[row][1];
        arr[row][1]=arr[row][3];
        arr[row][3]=temp;
 }

答案 1 :(得分:0)

原始订单

int ord [4] = { 0,1,2,3 }

更改排序

swap(ord[1], ord[2]);

cout << "After the row change: "<<endl;
for (int row=2;row>=0;row--){
    for(int col=0;col<4;col++){
        cout<<arr[row][ord[col]]<<" ";
    }
    cout<<endl;
}