- Khai báo cấu trúc dữ liệu phân số.
- Tính tổng hai phân số, tính hiệu hai phân số, thương hai phân số. ( tính ước số chung lớn
nhất của hai phân số, kiểm tra phân số tối giản.
#include<stdio.h>
#include<conio.h>
int UCLN(int a,int b)
{
return (b==0)?a:UCLN(b, a%b);
}
typedef struct{
int tu;
int mau;
}PHANSO;
PHANSO toi_gian(PHANSO a)
{
PHANSO c;
c.tu = a.tu / UCLN(a.tu, a.mau);
c.mau = a.mau / UCLN(a.tu, a.mau);
return c;
}
PHANSO cong(PHANSO a, PHANSO b)
{
PHANSO c;
c.tu=a.tu * b.mau + a.mau * b.tu;
c.mau=a.mau * b.mau;
toi_gian(c);
return c;
}
PHANSO tru(PHANSO a, PHANSO b)
{
PHANSO c;
c.tu = a.tu * b.mau + a.mau * b.tu;
c.mau= a.mau * b.mau;
toi_gian(c);
return c;
}
PHANSO nhan(PHANSO a, PHANSO b)
{
PHANSO c;
c.tu = a.tu * b.tu;
c.mau = a.mau * b.mau;
c = toi_gian(c);
return c;
}
PHANSO bcnn(PHANSO a, PHANSO b)
{
PHANSO c;
c=nhan(a,b);
}
PHANSO chia(PHANSO a, PHANSO b)
{
PHANSO c;
c.tu = a.tu * b.mau;
c.mau = a.mau * b.tu;
c = toi_gian(c);
return c;
}
void xuat(PHANSO a)
{
printf("%d/%d", a.tu, a.mau);
}
void main()
{
PHANSO a, b, c;
printf("\nNhap phan so a : ");
scanf("%d%d", &a.tu, &a.mau);
printf("\nNhap phan so b : ");
scanf("%d%d", &b.tu, &b.mau);
printf("\nPhan so a toi gian : ");
a = toi_gian(a);
xuat(a);
printf("\nphan so b toi gian : ");
b = toi_gian(b);
xuat(b);
printf("\nTong cua hai phan so : ");
c = cong(a, b);
xuat(c);
printf("\nHieu cua hai phan so : ");
c = tru(a, b);
xuat(c);
printf("\nTich cua hai phan so : ");
c = nhan(a, b);
xuat(c);
printf("\nThuong cua hai phan so : ");
c = chia(a, b);
xuat(c);
printf("\n Boi Chung Nho nhat :");
c=bcnn(a,b);
xuat(c);
getch();
}
2 nhận xét:
return (b==0)?a:UCLN(b, a%b);
lenh này thực hiện công việc dì vậy bạn??
PHANSO tru(PHANSO a, PHANSO b)
{
PHANSO c;
c.tu = a.tu * b.mau + a.mau * b.tu;
//c.tu = a.tu * b.mau - a.mau * b.tu;
c.mau= a.mau * b.mau;
toi_gian(c);
return c;
}
Cái tội copy + paste nhiều quá quên sửa :))
Đăng nhận xét