TOPIC

10 % não sei o motivo

Oi eu sou goku asked 2 years ago

#include <stdio.h>
#include <stdlib.h>

int mmc(int num1, int num2);
int *simplifica(int demominador, int numerador);

int main(int argc, char** argv)
{
    int n1, d1, n2, d2, resultado, divisao, *ptr;
    scanf("%d %d %d %d", &n1, &d1, &n2, &d2);
    if(d1 == d2)
    {
        ptr = simplifica((n1 + n2), d1);
        printf("%d %d\n", ptr[1], ptr[0]);
    }
    else
    {
        resultado = mmc(d1, d2);
        divisao = resultado / d1;
        n1 *= divisao;
        divisao = resultado / d2;
        n2 *= divisao;
        ptr = simplifica((n1 + n2), resultado);
        printf("%d %d\n", ptr[1], ptr[0]);
    }
    free(ptr);
    return 0;
}

int mmc(int num1, int num2)
{
    int resto, a, b;

    a = num1;
    b = num2;
    do
    {
        resto = a % b;

        a = b;
        b = resto;

    }
    while (resto != 0);

    return ( num1 * num2) / a;
}
int *simplifica(int demominador, int numerador)
{
    int r1 = 0, r2 = 0, nump = 2, cont = 0;
    int *ptr = (int*)malloc(sizeof(int) * 2);
    do
    {
        r1 = demominador % nump;
        r2 = numerador % nump;
        if(r1 == 0 && r2 == 0)
        {
            cont = 0;
            numerador /= nump;
            demominador /= nump;
        }
        else
        {
            cont++;
            nump++;
        }
    }
    while(cont != 60);
    ptr[0] = numerador;
    ptr[1] = demominador;
    return ptr;
}

This topic has not been answered yet. Be the first!

Remember not post solutions. Your post may be reviewed by our moderators.