bạn tham khảo code này nhé mình làm trên DEV-C++
Code:
#include<stdio.h>
#include<conio.h>
#include<math.h>
typedef struct
{
int ts,ms;
}phanso;
void nhap(phanso *p);
void in(phanso p);
long int ucln(int x,int y);
phanso rutgon(phanso p);
void nhap(phanso *p)
{
int t,m;
printf("nhap vao phan so a( nhap tu so truoc mau so sau): ");
scanf("%d %d",&t ,&m);
p->ts=t;p->ms=m;
}
void in(phanso p)
{
if(p.ms!=0)
{
printf("%d/%d",p.ts,p.ms);
}
if(p.ms==0)
{
printf("khong xac dinh !");
}
}
long int ucln(int x,int y)
{
x=fabs(x); y=fabs(y);
if(x*y==0) return 1;
while(x!=y)
{
if(x>y) x-=y;
if(y>x) y-=x;
}
return x;
}
phanso rutgon(phanso p)
{
phanso q;
int x;
x=ucln(p.ts,p.ms);
q.ts=p.ts/x;
q.ms=p.ms/x;
return(q);
}
main()
{
phanso a;
printf("\n nhap phan so a : "); nhap(& a);
printf("\n phan so sau rut gon =");in(rutgon(a));
getch();
}
còn bài của bạn thì theo mình bạn không thể nào chia lấy số dư khi nó thuộc kiểu int .Vì kiểu int số dư luôn =0;