Giúp em với mấy pro ơi.....!?
e có cái code viết theo C như thế này:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int t,m;
}
Phanso;
//----------------------------------------->
void nhapps(Phanso &x)
{
printf("\n\tNhap tu so: ");
scanf("%d",&x.t);
nhap:
printf("\tNhap mau so: ");
scanf("%d",&x.m);
if(x.m<0)
{
x.t=-x.t;
x.m=-x.m;
}
if(x.m==0)
{
printf("Mau khac 0");
goto nhap;
}
}
//------------------------------------------>
void xuatps(Phanso &x)
{
printf("%d / %d\n",x.t,x.m);
}
//------------------------------------------->
void sosanhps(Phanso a, Phanso b)
{
if(a.t*b.m>b.t*a.m)
{
printf("\tPhan so lon hon la: ");
xuatps(a);
}
else
{
printf("\tPhan so lon hon la: ");
xuatps(b);
}
}
//------------------------------------------>
int tongps (Phanso a, Phanso b)
{
Phanso c;
c.t=(a.t*b.m)+(b.t*a.m);
c.m=(a.m*b.m);
xuatps(c);
}
//------------------------------------------->
int tichps (Phanso a, Phanso b)
{
Phanso c;
c.t=(a.t*b.t);
c.m=(a.m*b.m);
xuatps(c);
}
//------------------------------------------->
void nghichps(Phanso &x)
{
int t;
t=x.t;
x.t=x.m;
x.m=t;
}
//------------------------------------------->
int main()
{
Phanso a,b;
printf("\tNhap phan so thu 1: ");
nhapps(a);
printf("\tNhap phan so thu 2: ");
nhapps(b);
printf("\tphan so ban vua nhap: \n");
printf("\tPhan so thu 1: ");
xuatps(a);
printf("\tPhan so thu 2: ");
xuatps(b);
sosanhps(a,b);
printf("\tTong 2 phan so la: ");
tongps(a,b);
printf("\ttich 2 phan so la: ");
tichps(a,b);
printf("\tnghich dao cua phan so thu 1: ");nghichps(a);xuatps(a);
printf("\tnghich dao cua phan so thu 2: ");nghichps(b);xuatps(b);
getch();
return 0;
}
Bây giờ em muốn rút gọn phân số khi thực hiện xong 2 phép tính tổng và tích, Nhưng e không biết phải làm như thế nào. Pro nào biết chỉ em với, Tuần sau là e phải báo cáo rồi, hiz hiz....e gà môn này lắm, mong mấy pro giúp em nhanh nhanh, Thanks mấy pro trước.....^^
Comments
Để đưa phân số thành phân số tối giản, bạn cần tìm một số lớn nhất mà cả Tử Số và Mẫu Số của phân số đó đều chia hết, số lớn nhất đó được gọi là Ước số chung lớn nhất của 2 số (TS và MS). Giả sử a là TS, b là MS, USCLN của a và b viết là USCLN(a,b) sẽ tìm được theo nhiều cách khác nhau, bạn có thể dùng giải thuật Ơclit (viết trong C#) như sau:
static int USCLN(int a, int b)
{
a=Math.Abs(a);
b=Math.Abs(b);
if (a==0 ||b==0)
return a+b;
while (a !=b)
{
if(a>b)
a=a-b;
else
b=b-a;
}
return a;
}
Khi có USCLN của 2 số rồi thì chia TS cho USCLN và chia MS cho USCLN, ta sẽ có phân số tối giản.
Cách Äây và i ngà y mình có trả lá»i câu há»i tÆ°Æ¡ng tá»± rá»i.
Nếu không nhầm thì chÃnh bạn Äã Äặt câu há»i trÆ°á»c.
Bạn add nick: nguyenconghoang_friend có gì chÆ°a rõ mình giải thÃch cho.
viet 1 cai tim ucln cua tu va mau, rui lay tu va mau chia cho ucln
Ãi mẹ Æ¡i, Äá»c dc 1/2 code: Hoa mắt, chóng mặt, ù tai, nhức Äầu.....!