code này bị lỗi gì mà không xuất s ra được vậy
#include<conio.h>
#include<iostream>
#include<math.h>
using namespace std;
typedef struct PS
{
int a,b;
}PS;
ostream&operator<<(ostream &os,PS p);
istream&operator>>(istream& is,PS&p);
int ucln(int x,int y);
PS rutgon(PS p);
PS operator+(PS p1,PS p2);
PS operator-(PS p1,PS p2);
PS operator*(PS p1,PS p2);
PS operator/(PS p1,PS p2);
ostream&operator<<(ostream &os,PS p)//TOAN TU XUAT
{
os<<p.a<<"/"<<p.b;
return os;
}
istream&operator>>(istream& is,PS&p)//TOAN TU NHAP
{
cout<<"nhap tu va mau= ";
is>>p.a>>p.b;
return is;
}
int ucln(int x,int y)
{
int xc,xd;
xc=x; xd=y;
while (xc!=xd)
if(xc>xd)
xc-=xd;
else
xd=-xc;
return xc;
}
PS rutgon(PS p)
{
PS q;
int tam= ucln(p.a,p.b);
q.a=p.a/tam;
q.b=p.b/tam;
return q;
}
PS operator+(PS p1,PS p2)
{
PS q;
q.a=p1.a*p2.b+p2.b*p1.a;
q.b=p1.b*p2.a;
return (rutgon(q));
}
PS operator-(PS p1 ,PS p2)
{
PS q;
q.a=p1.a*p2.b-p2.a*p1.b;
q.b=p1.b*p2.a;
return(rutgon(q));
}
PS operator*(PS p1,PS p2)
{
PS q;
q.a=p1.a*p2.b;
q.b=p1.b*p2.a;
return(rutgon(q));
}
PS operator/(PS p1,PS p2)
{
PS q;
q.a=p1.a*p2.b;
q.b=p1.b*p2.a;
return(rutgon(q));
}
void main()
{
PS p,q,z,u,v;
PS s;
cout<<"\n nhap cac PS p,q,z,u,v: \n";
cin>>p>>q>>z>>u>>v;
s=(p-q*z)/(u+v);
cout<<"("<<p<<"- "<<q<<"*"<<z<< "*"<<z<<")/("<<u<<"+"<<v<<") la"<< s ;
system("PAUSE");
}