So sánh và sắp xếp mảng phân số

Em ko biết cách so sánh , và sắp xếp các phần tử trong mảng Phân số ở phần main

Cho hai phân số 2/3 và 3/4, theo bạn cái nào lớn hơn và bạn giải thích xem :kissing: ?

2 Likes

Cho tử 2 chia cho 4 và tử 3 chia cho 4 nếu ps1 lớn hơn thì lớn hơn

Bạn nên dùng vector hoặc cấp phát động, không thể khai báo mảng động như code của bạn.
So sánh thì đơn giản so sánh tử*mẫu của 2 phân số.
Sắp xếp thì đơn giản là dùng hoán vị, bạn có thể có nhiều thuật toán sx khác như nổi bọt, chèn, …

int sosanh(ps a, ps b) {
    if (a.ts * b.ms > b.ts * a.ms) {
        return 1;
    }
    else if (a.ts * b.ms < b.ts * a.ms) {
        return -1;
    }
    else {
        return 0;
    }
}
void sapxep(vector<ps>& vec_ps) {
    int sz = vec_ps.size();
    for (int i = 0; i < sz-1; i++) {
        for (int j = i + 1; j < sz; j++) {
            if (sosanh(vec_ps[i], vec_ps[j]) == 1) {
                ps tmp = vec_ps[j];
                vec_ps[j] = vec_ps[i];
                vec_ps[i] = tmp;
            }
        }
    }
}

Hình như đến cách so sánh 2 ps bạn cũng k biết nữa. Nếu biết thì k ai lại giải thích mơ hồ ntn cả.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?