02/10/2018, 14:15
[Struct C++] Viết chương trình nhập vào nhiều phân số và tính tổng các phân số đó
1. Tính tổng phân số c++ Đề bài: Bạn hãy viết chương trình nhập vào vào N phân số, và tính tổng các phân số đó. Kết quả bài toán phải là phân số tối giản và phải dùng kiểu dữ liệu cấu trúc. Ví dụ: N=2 1/3+ 2/6 = 2/3 2. Code Tính tổng phân số c++ #include ...
1. Tính tổng phân số c++
Đề bài: Bạn hãy viết chương trình nhập vào vào N phân số, và tính tổng các phân số đó. Kết quả bài toán phải là phân số tối giản và phải dùng kiểu dữ liệu cấu trúc.
Ví dụ:
N=2
1/3+ 2/6 = 2/3
2. Code Tính tổng phân số c++
#include <iostream>
#include <stdio.h>
using namespace std;
struct ps
{
int tu;
int mau;
};
ps a[100];
int n;
void nhap()
{
freopen("test.inp", "r", stdin);
cin>> n;
for (int i=1; i<=n; i++)
cin >> a[i].tu>>a[i].mau;
}
void xuat()
{
for (int i=1; i<=n; i++)
cout << a[i].tu<< "/" <<a[i].mau<<endl;
}
int ucln(int a, int b)
{
int r;
while (a%b!=0)
{
r=a%b;
a=b;
b=r;
}
return b;
}
ps tongps()
{
int i,z;
ps tmp=a[1];
for (i=2; i<=n; i++)
{
tmp.tu = tmp.tu*a[i].mau + tmp.mau*a[i].tu;
tmp.mau = tmp.mau*a[i].mau;
z=ucln(tmp.tu, tmp.mau);
tmp.tu /=z;
tmp.mau /=z;
}
return tmp;
}
void xuli()
{
ps tong = tongps();
cout << "Tong PS = "<<tong.tu<< "/"<< tong.mau;
}
int main()
{
nhap();
xuat();
xuli();
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #include <iostream> #include <stdio.h> using namespace std; struct ps { int tu; int mau; }; ps a[100]; int n; void nhap() { freopen("test.inp", "r", stdin); cin>> n; for (int i=1; i<=n; i++) cin >> a[i].tu>>a[i].mau; } void xuat() { for (int i=1; i<=n; i++) cout << a[i].tu<< "/" <<a[i].mau<<endl; } int ucln(int a, int b) { int r; while (a%b!=0) { r=a%b; a=b; b=r; } return b; } ps tongps() { int i,z; ps tmp=a[1]; for (i=2; i<=n; i++) { tmp.tu = tmp.tu*a[i].mau + tmp.mau*a[i].tu; tmp.mau = tmp.mau*a[i].mau; z=ucln(tmp.tu, tmp.mau); tmp.tu /=z; tmp.mau /=z; } return tmp; } void xuli() { ps tong = tongps(); cout << "Tong PS = "<<tong.tu<< "/"<< tong.mau; } int main() { nhap(); xuat(); xuli(); return 0; } |