使用指针对2维数组进行排序

时间:2014-02-27 23:45:49

标签: c++ arrays sorting

无论我如何尝试,我都无法通过这个问题。正如您所看到的,我正在使用二维数组中的指针进行排序。

    int i,temp;
int *ptr;
int arry[1][8]={12,13,9,1,8,9,4,3};
int col,row; 
cout<<"First: ";
for(i = 0; i< 8;i++){
cout<<" "<<arry[0][i];  
}

cout<<endl;

for(col=0;col < 8;col++){
    for(row=col+1;row <= 8;row++){
        if(*(*(arry + 0) + col) > *(*(arry + 0) + row)){
            temp= *(*(arry + 0) + col);
            *(*(arry + 0) + col) = *(*(arry + 0) + row);
            *(*(arry + 0) + row) = temp;
        }
    }
}

cout<<"Output:";
for(i=0;i<8;i++) 
  cout<<" "<<arry[0][i];

1 个答案:

答案 0 :(得分:0)

看起来你只是在数组中存储值,而不是指针。

更改符号,以便将现有循环更常规的数组寻址,我们会有类似的东西,可能更具可读性。

if(arry[0][col]) > arry[0][row]){
    temp=arry[0][col];
    arry[0][col] = arry[0][row];
    arry[0][row] = temp;
}

如果你想使用指针表示法,你可以用*(*(arry + i)+ j)代替arry [i] [j],但这是一回事。您是否希望通过指针表示法获得额外的东西?