| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
请各位帮忙!!很不懂啊!为什么还是错?#include<iostream>
using namespace std;
class fraction
{
public:
void judge1( int m ) { if(m<0||m>9) {cout << " error!" << endl; exit(0);}}
void judge2(int m, int n, int j, int k,char a);
void getresulte(int m, int n, int j, int k);
int gcd( int n, int m);
void print();
private:
int a, b;
bool x;
};
void fraction :: judge2(int m, int n, int j, int k,char a)
{
judge1(n);
judge1(m);
judge1(j);
judge1(k);
switch (a)
{
case '+': { x = 1; break;}
case '-': { x = 0; break;}
default: { exit(0); }
}
}
int fraction::gcd( int n,int m)
{
int r = n%m;
if(!r)
return m;
else
return gcd (m,r);
}
void fraction :: getresulte( int n, int m, int j, int k)
{
if (x)
a = n*k + m*j;
else
a = n*k - m*j;
b = m*k;
int temp;
temp = gcd (abs(a), b);
a = a/temp;
b = b/temp;
}
void fraction :: print()
{
if (a==0)
cout << "0" << endl;
else
if(b == 1)
cout << a <<endl;
else
cout << a << "/" << b <<endl;
}
int main()
{
fraction A[100];
char *s;
s = new char[8];
int i;
cin >>s;
int a = atof(&s[0]);
int b = atof(&s[2]);
int c = atof(&s[4]);
int d = atof(&s[6]);
A[0].judge2 (a,b, c, d, s[3]);
A[0].getresulte (a, b, c, d);
for( i =1; i<100;i++)
{
cin >>s;
if (strcmp(s,"EOF")==0)
break;
a = atof(&s[0]);
b = atof(&s[2]);
c = atof(&s[4]);
d = atof(&s[6]);
A[i].judge2 (a,b, c, d, s[3]);
A[i].getresulte (a, b, c, d);
}
for(int j=0;j<i;j++)
{
A[j].print ();
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator