TÓPICO

Can anyone fix where is the problem? C++

AkibRahman0 perguntou 4 years ago

include

include

using namespace std;

int function(int x,int y) { int a,c; if(x == 0 && y > 0)

    return 1;

if(x < y)
{
    a = x;
    x = y;
    y = a;
}

c = x % y;

if(c != 0)
    return c;
else
    return y;

}

int main() {

int m,b,q,r,f,j,n1,n2,d1,d2;
cin>>q;
string c1,c2,c3;

int i;
for(i = 0; i < q; i++)
{
    cin>>n1>>c1>>d1>>c2>>n2>>c3>>d2;

    if(c2 == "+")
    {
        m = (( n1 * d2 ) + ( n2 * d1 ));
        b = ( d1 * d2 );
    }
    else if(c2 == "-")
    {
        m = (( n1 * d2 ) - ( n2 * d1 ));
        b = ( d1 * d2 );
    }
    else if(c2 == "*")
    {
        m = ( n1 * n2 );
        b = ( d1 * d2 );
    }
    else if(c2 == "/")
    {
        m = ( n1 * d2 );
        b = ( n2 * d1 );
    }

    r = function( m, b );
    f = m / r ;
    j = b / r ;

    if(f > 0 && j > 0)
    {
        cout<<m<<"/"<<b<<" = "<<f<<"/"<<j<<endl;
    }
    else
    {
        if(j < 0)
        {
            f = -f;
            j = -j;
        }
        cout<<m<<"/"<<b<<" = "<<f<<"/"<<j<<endl;
    }
}
return 0;

}

Lembre de não publicar soluções. Sua publicação pode ser revisada por nossos moderadores.

  • tmjunior respondido 4 years ago

    Your gcd function is wrong. For example gcd (9,0) = 9 while yours presents 1. Search for Euclidean algorithm to solve

    MOD