Viết chương trình nhập vào một dãy các phân số. Sắp xếp theo thứ tự tăng dần và in ra các phân số trên n dòng. Dữ liệu: Dòng đầu tiên ghi số nguyên dương n(0≤n≤105) n dòng kế tiếp mỗi dòng ghi hai số nguyên pi và qi mô tả phân số thứ i Kết quả: In ra n dòng, mỗi dòng là hai số nguyên mô tả phân số ở dạng tối giản được sắp theo thứ tự tăng dần C++ nha
2 câu trả lời
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,b,c;
int M;
cin>>n>>b>>c;
if(n>b)
{
M=n;
n=b;
b=M;
}if(b>c)
{
M=b;
b=c;
c=M;
}if(n>b)
{
M=n;
n=b;
b=M;
}
cout<<n<<" "<<b<<" "<<c<<endl;
return 0;
}
#include <iostream>
#include <utility>
#include <algorithm>
using namespace std;
typedef pair<int, int> pii;
bool operator < (pii a, pii b) {
return double(a.first) / a.second < double(b.first) / b.second;
}
pii a[100005];
int n;
int main() {
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a[i].first >> a[i].second;
auto tmp = __gcd(a[i].first, a[i].second);
a[i].first /= tmp;
a[i].second /= tmp;
}
sort(a, a + n);
for (int i = 0; i < n; ++i) cout << a[i].first << " " << a[i].second << '\n';
}