Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /****************************************************************************************
- * Viet chuong trinh
- * - Khai bao cau truc phan so gom tu so va mau so.
- * - Khai bao danh sach (Mang ) phan so de luu tru nhieu phan so
- * - Viet ham tinh tong cua mot danh sach cac phan so, ket qua tra ve cua ham la 1 phan so.
- * - Viet ham chuan hoa 1 phan so.Vi du: 2/4 duoc chuan hoa thanh 1.2.
- * - Ham xuat cac danh sach phan so ra man hinh.
- * Viet ham main cho phep nguoi dung:
- * - Nhap vao mot danh cac phan so.
- * - Chuan hoa cac phan so.
- * - Tinh tong cac phan so da duoc chuan hoa.
- * - Xuat cac phan so truoc khi chuan hoa va sau khi chuan hoa.
- *****************************************************************************************/
- #include<stdio.h>
- #include<math.h>
- typedef struct {
- int tu;
- int mau;
- } PhanSo;
- PhanSo PS1,PS2;
- void Nhap(PhanSo Ps[], int n) {
- int i;
- for(i = 0; i < n; ++i) {
- printf ("\nNhap vao tu so thu %d: ", i+1);
- scanf ("%d", &Ps[i].tu);
- printf ("\nNhap vao mau so thu %d: ", i+1);
- scanf ("%d%*c", &Ps[i].mau);
- }
- }//===>Nhap
- void Xuat(PhanSo Ps[], int n) {
- int i;
- for(i = 0; i < n; ++i)
- printf(" %d/%d ", Ps[i].tu, Ps[i].mau);
- }//===>Xuat
- float Tong(PhanSo Ps[], int n)
- {
- PhanSo tam = Ps[0];
- int i;
- for(i = 1; i < n; ++i) {
- tam.tu = tam.tu * Ps[i].mau + Ps[i].tu * tam.mau;
- tam.mau = tam.mau * Ps[i].mau;
- }
- return tam.tu / float (tam.mau);
- }//===>Tong
- int UCLN(int a, int b) {
- a = (a < 0 ? -a : a);
- b = (b < 0 ? -b : b);
- while (a && b) {
- if (a > b) a %= b;
- else b %= a;
- }
- return a + b;
- }//===>UCLN
- void RutGon (PhanSo Ps[], int n) {
- int tu, mau, i, uc;
- for(i = 0; i < n; ++i) {
- uc = UCLN(Ps[i].tu, Ps[i].mau);
- Ps[i].tu /= uc;
- Ps[i].mau /= uc;
- }
- }//===>RutGon
- void XuatMang(PhanSo Ps[], int n)
- {
- int i;
- RutGon(Ps, n);
- for (i = 0; i < n; ++i)
- printf(" %d/%d ", Ps[i].tu, Ps[i].mau);
- }//===>XuatMang
- int main (void) {
- int n;
- PhanSo Ps[20];
- printf ("Nhap vao so luong phan so n: ");
- scanf ("%d",&n);
- Nhap (Ps, n);
- printf ("\nPhan so vua nhap la:\n");
- Xuat (Ps, n);
- printf ("\nPhan so sau khi duoc rut gon:\n");
- XuatMang(Ps, n);
- printf ("\nTong cac phan so la: %f", Tong(Ps, n));
- getchar ();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement