C,
pasted
on Dec 6:
|
#include<stdio.h>
#include<conio.h>
// 522 Khai báo kiểu dữ liệu để biểu diễn thông tin của 1 hỗn số
struct HonSo
{
int Nguyen;
int Tu;
int Mau;
};
typedef struct HonSo HONSO;
void NhapHonSo(HONSO &);
void XuatHonSo(HONSO);
HONSO RutGonHonSo(HONSO);
HONSO TinhTong2HonSo(HONSO, HONSO);
HONSO TinhHieu2HonSo(HONSO, HONSO);
HONSO TinhTich2HonSo(HONSO, HONSO);
HONSO TinhThuong2HonSo(HONSO, HONSO);
bool KiemTraHonSoToiGian(HONSO);
void QuiDong2HonSo(HONSO, HONSO);
// 523 Nhập hỗn số
void NhapHonSo(HONSO &hs)
{
printf("\nNhap phan nguyen: ");
scanf("%d", &hs.Nguyen);
printf("\nNhap tu so: ");
scanf("%d", &hs.Tu);
printf("\nNhap mau so: ");
scanf("%d", &hs.Mau);
}
// 524 Xuất hỗn số
void XuatHonSo(HONSO hs)
{
printf("%d(%d/%d)", hs.Nguyen, hs.Tu, hs.Mau);
}
// 525 Rút gọn hỗn số
int TimUCLN(int a, int b)
{
if(a < 0)
{
a = a * -1;
}
if(b < 0)
{
b = b * -1;
}
if(a == 0 && b !=0)
{
return b;
}
else if( b == 0 && a != 0 )
{
return a;
}
while(a != b)
{
if(a > b)
{
a = a - b;
}
else
b = b - a;
}
return a;
}
HONSO RutGonHonSo(HONSO hs)
{
if(hs.Tu > hs.Mau)
{
int temp = hs.Tu / hs.Mau;
hs.Nguyen += temp;
hs.Tu -= hs.Mau * temp;
}
int UCLN = TimUCLN(hs.Tu, hs.Mau);
hs.Tu /= UCLN;
hs.Mau /= UCLN;
return hs;
}
// 526 Tính tổng 2 hỗn số
HONSO TinhTong2HonSo(HONSO a, HONSO b)
{
HONSO c;
c.Nguyen = a.Nguyen + b.Nguyen;
c.Tu = a.Tu * b.Mau + a.Mau * b.Tu;
c.Mau = a.Mau * b.Mau;
c = RutGonHonSo (c);
return c;
}
// 527 Tính hiệu 2 hỗn số
HONSO TinhHieu2HonSo(HONSO a, HONSO b)
{
HonSo c;
c.Nguyen = a.Nguyen - b.Nguyen;
c.Tu = a.Tu * b.Mau - a.Mau * b.Tu;
c.Mau = a.Mau * b.Mau;
c = RutGonHonSo (c);
return c;
}
// 528 Tính tích 2 hỗn số
HONSO TinhTich2HonSo(HONSO a, HONSO b)
{
// Đưa về dạng phân số
a.Tu = a.Tu + a.Nguyen * a.Mau;
b.Tu = b.Tu + b.Nguyen * b.Mau;
HONSO c;
c.Nguyen = 0;
c.Tu = a.Tu * b.Tu;
c.Mau = a.Mau * b.Mau;
c = RutGonHonSo (c);
return c;
}
// 529 Tính thương 2 hỗn số
HONSO TinhThuong2HonSo(HONSO a, HONSO b)
{
// Đưa về dạng phân số
a.Tu = a.Tu + a.Nguyen * a.Mau;
b.Tu = b.Tu + b.Nguyen * b.Mau;
HONSO c;
c.Nguyen = 0;
c.Tu = a.Tu * b.Mau;
c.Mau = a.Mau * b.Tu;
c = RutGonHonSo (c);
return c;
}
// 530 Kiểm tra hỗn số tối giản
bool KiemTraHonSoToiGian(HONSO a)
{
int UCLN = TimUCLN(a.Tu, a.Mau);
if (UCLN == 1)
return true;
return false;
}
// 531 Qui đồng 2 hỗn số
void QuiDong2HonSo(HONSO &a, HONSO &b)
{
HONSO c = a;
a.Tu = a.Tu * b.Mau;
a.Mau = a.Mau * b.Mau;
b.Tu = b.Tu * c.Mau;
b.Mau = c.Mau * b.Mau;
}
int main()
{
HONSO a, b;
NhapHonSo(a);
XuatHonSo(a);
NhapHonSo(b);
XuatHonSo(b);
HONSO c = RutGonHonSo(a);
printf("\nRut gon hon so a: ");
XuatHonSo(c);
HONSO d = RutGonHonSo(b);
printf("\nRut gon hon so b: ");
XuatHonSo(d);
HONSO tong = TinhTong2HonSo(a, b);
printf("\nTong 2 hon so: ");
XuatHonSo(tong);
HONSO hieu = TinhHieu2HonSo(a, b);
printf("\nHieu 2 hon so: ");
XuatHonSo(hieu);
HONSO tich = TinhTich2HonSo(a, b);
printf("\nTich 2 hon so: ");
XuatHonSo(tich);
HONSO thuong = TinhThuong2HonSo(a, b);
printf("\nThuong 2 hon so: ");
XuatHonSo(thuong);
if (KiemTraHonSoToiGian(a))
printf("\nHon so a toi gian");
else
printf("\nHon so a chua toi gian");
QuiDong2HonSo(a,b);
printf("\na sau khi qui dong: ");
XuatHonSo(a);
printf("\nb sau khi qui dong: ");
XuatHonSo(b);
getch();
return 0;
}
|
Output:
|
Line 17: error: conio.h: No such file or directory
Line 13: error: expected ';', ',' or ')' before '&' token
Line 22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'KiemTraHonSoToiGian'
Line 26: error: expected ';', ',' or ')' before '&' token
In function 'TinhHieu2HonSo':
Line 106: error: 'HonSo' undeclared (first use in this function)
Line 106: error: (Each undeclared identifier is reported only once
Line 106: error: for each function it appears in.)
Line 106: error: expected ';' before 'c'
Line 107: error: 'c' undeclared (first use in this function)
t.c: At top level:
Line 147: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'KiemTraHonSoToiGian'
Line 156: error: expected ';', ',' or ')' before '&' token
|
|