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
So sánh và sắp xếp mảng phân số
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 ?
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