30/09/2018, 18:56

Sắp xếp mảng 2 chiều

Cho e hỏi : có cách nào để sắp xếp mảng 2 chiều thế này:
5 6 9
1 2 4
3 8 7
thành
1 2 3
4 5 6
7 8 9
ngoại trừ chuyển thành mảng 1 chiều rồi sắp xếp ko vậy?

Tuan Tran Duong viết 21:00 ngày 30/09/2018

Cách nhanh nhất là bạn dùng 4 vòng for bạn ơi. Normal sort là được rồi.

Dương Nylghara viết 21:06 ngày 30/09/2018

Chuyển mảng 2 chiều về mảng 1 chiều nha… sau đó sort rồi in ra mảng 2 chiều
Gợi ý :

// mảng m2 là mảng 2 chiều, kích thước m*n (m dòng n cột)
 for (int i = 0; i < m*n; i++)
  m1[i] = m2[i/n][i%n];

-----------------------------------------------------
#include <iostream>

using namespace std;
void nhapMang(int contro[][100], int dong, int cot)
{
    for(int biendem =0; biendem < cot*dong; biendem++)
    {
        cout<<"Nhap mang thu a["<<biendem/cot<<"]"<<"["<<biendem%cot<<"] :";
        cin>>contro[biendem/cot][biendem%cot];

    }
}
void xuatMang(int contro[][100], int dong, int cot)
{
    for(int biendem =0; biendem < cot*dong; biendem++)
    {
        cout<<"\t"<<contro[biendem/cot][biendem%cot];
        if((biendem+1)%cot==0)
            cout<<endl;
    }
    cout<<"\t";
}


int main()
//            cout<<endl;
{

    cout << "Hello world!" << endl;
    int contro[100][100];
    nhapMang(contro,3,4);
    xuatMang(contro,3,4);
    return 0;
}

//quên chưa đọc hết câu đề của bạn. "ngoài trừ" thôi lỡ rồi nên để đó cho ai cần

Cao Tín viết 21:02 ngày 30/09/2018

tìm min, max rồi đếm từ min tới max nếu gặp số nào thì in ra
nói vậy chứ không biết đúng không

Đoàn Văn Thọ viết 20:57 ngày 30/09/2018

for(int i = 0; i < dong * cot - 1; i++)
{
for(int j = 0; j < dong * cot; j++)
{
if(a[i / cot][i % cot] > a[j / cot][j % cot])
{
HoanVi(a[i / cot][i % cot], a[j / cot][j % cot])
}
}
}

Bài liên quan
0