Xem giùm em đoạn code này không biết sai chỗ nào mà em rút gọn phân số không được .Cảm ơn ạ
#include <iostream>
using namespace std ;
struct Phanso{
int tu ;
int mau;
};
struct Node{
Phanso *data;
Node *pNext ;
};
struct SingleList{
Node *pHead ;
Node *pTail ;
};
void Init(SingleList *&list)
{
list->pHead=list->pTail=NULL;
}
Node *CreateNode(Phanso *ps)
{
Node *pNode = new Node ;
if(pNode!=NULL)
{
pNode->data=ps ;
pNode->pNext=NULL ;
}
else
{
cout<<"Cap phat bo nho that bai\n";
return NULL ;
}
return pNode ;
}
void InserLast(SingleList *&list,Phanso *ps)
{
Node *pNode = CreateNode(ps) ;
if(list->pHead==NULL)
{
list->pHead=list->pTail=pNode ;
}
else
{
list->pTail->pNext=pNode ;
list->pTail=pNode ;
}
}
void PrintList(SingleList *list)
{
if(list->pHead==NULL)
{
cout<<"Danh sach lien ket rong\n";
return ;
}
else
{
Node *pTmp = list->pHead ;
while(pTmp!=NULL)
{
cout<<pTmp->data->tu<<"/"<<pTmp->data->mau<<"\t";
pTmp=pTmp->pNext;
}
}
}
int UCLN(Phanso *ps) {
int tmp;
while(ps->mau != 0) {
tmp = ps->tu % ps->mau ;
ps->tu = ps->mau ;
ps->mau = tmp;
}
return ps->tu;
void RutGon(Phanso *&ps)
{
ps->tu=ps->tu/UCLN(ps) ;
ps->mau=ps->mau/UCLN(ps) ;
}
void NhapPhanSo(Phanso *&ps)
{
cout<<"Tu=";
cin>>ps->tu ;
cout<<"Mau=";
cin>>ps->mau;
}
int main()
{
SingleList *list = new SingleList ;
Init(list) ;
Phanso *ps = new Phanso ;
NhapPhanSo(ps) ;
cout<<UCLN(ps)<<endl ;
RutGon(ps) ;
cout<<ps->tu<<"\t"<<ps->mau<<endl;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?