Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- struct phanSo
- {
- int tu;
- int mau;
- }p1, p2, p;
- void nhap (phanSo &p1, phanSo &p2);
- void xuat (phanSo &p);
- int USCLN (phanSo p);
- int rutGon (phanSo &p);
- int xuLy (phanSo &p);
- void tinhTong (phanSo p1, phanSo p2, phanSo &p);
- void tinhHieu (phanSo p1, phanSo p2, phanSo &p);
- void tinhTich (phanSo p1, phanSo p2, phanSo &p);
- int tinhThuong (phanSo p1, phanSo p2, phanSo &p);
- void nhap2 (phanSo &p);
- void kiemTraTinhToiGian (phanSo &p);
- void kiemTraAmDuong (phanSo &p);
- void soSanh (phanSo &p1, phanSo &p2);
- void quyDong (phanSo &p1, phanSo &p2);
- void main ()
- {
- printf ("Hay chon so tuong ung voi yeu cau :\n1-Kiem tra tinh toi gian.\n2-Rut gon.\n3-Tinh tong.\n4-Tinh hieu.\n5-Tinh tich.\n6-Tinh thuong.\n7-So sanh.\n8-Kiem tra am duong.\n");
- int lenh;
- do
- {
- scanf ("%d",&lenh);
- if (lenh<1||lenh>8)
- {
- printf ("Nhap lhong hop le , hay nhap lai !\n");
- }
- } while (lenh<1||lenh>8);
- if (lenh==1)
- {
- nhap2(p);
- kiemTraTinhToiGian (p);
- }
- if (lenh==2)
- {
- nhap2(p);
- xuat (p);
- }
- if (lenh==3)
- {
- nhap (p1,p2);
- tinhTong (p1,p2,p);
- xuat (p);
- }
- if (lenh==4)
- {
- nhap (p1,p2);
- tinhHieu (p1,p2,p);
- xuat (p);
- }
- if (lenh==5)
- {
- nhap (p1,p2);
- tinhTich (p1,p2,p);
- xuat (p);
- }
- if (lenh==6)
- {
- nhap (p1,p2);
- int kt=tinhThuong (p1,p2,p);
- if (kt==0)
- {
- printf ("Khong chia duoc !\n");
- } else
- {
- xuat (p);
- }
- }
- if (lenh==7)
- {
- nhap(p1,p2);
- soSanh (p1,p2);
- }
- if (lenh==8)
- {
- nhap2(p);
- kiemTraAmDuong(p);
- }
- }
- void soSanh (phanSo &p1, phanSo &p2)
- {
- quyDong (p1,p2);
- if (p1.tu>p2.tu)
- {
- printf ("phan so thu nhat lon hon\n");
- } else
- {
- if (p1.tu==p2.tu)
- {
- printf ("Hai phan so bang nhau\n");
- } else
- {
- printf ("Phan so thu hai lon hon\n");
- }
- }
- }
- void quyDong (phanSo &p1, phanSo &p2)
- {
- p1.tu=p1.tu*p2.mau;
- p2.tu=p2.tu*p1.mau;
- }
- void kiemTraAmDuong (phanSo &p)
- {
- if ((p.tu<0&&p.mau>0)||(p.tu>0&&p.mau<0))
- {
- printf ("Am !\n");
- } else
- {
- if (p.tu==0)
- {
- printf ("Khong am khong duong !\n");
- } else
- {
- printf ("Duong !\n");
- }
- }
- }
- void nhap2 (phanSo &p)
- {
- printf ("Nhap lan luot tu va mau cua phan so :\n");
- do
- {
- scanf ("%d%d",&p.tu, &p.mau);
- if (p.mau==0)
- {
- printf ("Phan so khong hop le hay nhap lai !\n");
- }
- } while (p.mau==0);
- }
- void kiemTraTinhToiGian (phanSo &p)
- {
- xuLy (p);
- if ((p.tu==0)||((p.tu==1)&&(p.mau==1)))
- {
- printf ("toi gian\n");
- } else
- {
- int kt=USCLN (p);
- if (kt==1)
- {
- printf ("toi gian \n");
- } else
- {
- printf ("khong toi gian \n");
- }
- }
- }
- int tinhThuong (phanSo p1, phanSo p2, phanSo &p)
- {
- if (p2.tu==0)
- {
- return 0;
- } else
- {
- p.mau=p1.mau*p2.tu;
- p.tu=p1.tu*p2.mau;
- }
- return 1;
- }
- void tinhTich (phanSo p1, phanSo p2, phanSo &p)
- {
- p.mau=p1.mau*p2.mau;
- p.tu=p1.tu*p2.tu;
- }
- void tinhHieu (phanSo p1, phanSo p2, phanSo &p)
- {
- p.mau=p1.mau*p2.mau;
- p.tu=p1.tu*p2.mau-p2.tu*p1.mau;
- }
- void tinhTong (phanSo p1, phanSo p2, phanSo &p)
- {
- p.mau=p1.mau*p2.mau;
- p.tu=p1.tu*p2.mau+p2.tu*p1.mau;
- }
- int xuLy (phanSo &p)
- {
- if (p.tu==0)
- {
- return -2;
- }
- if ((p.tu<0)&&(p.mau<0))
- {
- p.tu=abs (p.tu);
- p.mau=abs (p.mau);
- return 0;
- } else
- {
- if (p.tu<0)
- {
- p.tu=abs(p.tu);
- return 1;
- } else
- {
- if (p.mau<0)
- {
- p.mau=abs (p.mau);
- return 1;
- }
- }
- }
- return 0;
- }
- int USCLN (phanSo p)
- {
- int a=p.tu;
- int b=p.mau;
- if (a==b)
- {
- return 0;
- } else
- {
- while (a!=b)
- {
- if (a>b)
- {
- a=a-b;
- } else
- {
- b=b-a;
- }
- }
- }
- return a;
- }
- int rutGon (phanSo &p)
- {
- int kt=xuLy (p);
- if (kt==-2)
- {
- return -2;
- }
- int a=USCLN (p);
- if (a==0)
- {
- if (kt==1)
- {
- return -1;
- } else
- {
- return 0;
- }
- } else
- {
- if (kt==0)
- {
- p.tu=p.tu/a;
- p.mau=p.mau/a;
- } else
- {
- p.tu=-p.tu/a;
- p.mau=p.mau/a;
- }
- }
- return 1;
- }
- void nhap (phanSo &p1, phanSo &p2)
- {
- printf ("Nhap lan luot tu va mau cua 2 phan so :\n");
- do
- {
- scanf ("%d%d%d%d",&p1.tu,&p1.mau,&p2.tu,&p2.mau);
- if (p1.mau==0||p2.mau==0)
- {
- printf ("Phan so khong hop le hay nhap lai !\n ");
- }
- } while (p1.mau==0||p2.mau==0);
- }
- void xuat (phanSo &p)
- {
- int kt=rutGon(p);
- if (kt==-2)
- {
- printf ("0");
- } else
- {
- if (kt==0)
- {
- printf ("1 ");
- } else
- {
- if (kt==-1)
- {
- printf ("-1");
- } else
- {
- if (p.mau==1)
- {
- printf ("%d ",p.tu);
- } else
- {
- printf ("%d/%d ",p.tu,p.mau);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment