Soma de frações irredutiveis

1. Soma de frações irredutiveis

Vinícius de Oliveira Ribeiro
BorealPick0

(usa Outra)

Enviado em 30/03/2018 - 20:48h

Estou com dificuldades no codigo
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
int a, b, c, d, resulta, resultb, A, B, result1, result2, teste;

scanf("%i %i %i %i", &a, &b, &c, &d);

if((a >= 1) && (a <= 100) && (b >= 1) && (b <= 100) && (c >= 1) && (c <= 100) && (d >= 1) && (d <= 100))
{
resulta = (a*d) + (c*b);
resultb = b*d;
A = resulta;
B = resultb;

while (B =! 0)
{
teste = A % B;
A = B;
B = teste;
}
result1 = resulta / A;
result2 = resultb / A;

printf("%i %i", result1, result2);

return 0;
}

else{
return 1;
}
return 0;
}

Eu quero que o usuario digite 4 números que serão dividendos e divisores de duas frações quaisquer: a/b e c/d. Logo após desejo executar a soma das frações e mostrar o resultado em forma de uma fração irredutível.

ex: Entrada:
2 3 7 3

Saída:
3 1 que será o mesmo que 3/1

O programa executa perfeitamente até chegar aqui:
while (B =! 0)
{
teste = A % B;
A = B;
B = teste;
}

nessas linhas de código eu teste se ainda exite algum número que possa ser usado para dividir os números da fração e torná-la irredutivel.

ex: se A = 27 e B = 9
o esperado era que:

while (B =! 0)
{
teste = 27 % 9; // que seria igual a 0
A = 9;
B = 0;
}

o A corresponderia ao divisor comun entre os dois, então:
27/9 = 3
9/9 = 1
logo resultaria em: 3/1, que é a minha fração irredutível.

porém ao usar o while o compilador trava e não sei porque, poderiam ajudar-me a identificar o erro?

obs: sem usar a função while o programa executa perfeitamente e obtenho a fração 27/9.


  


2. Re: Soma de frações irredutiveis

Vinícius de Oliveira Ribeiro
BorealPick0

(usa Outra)

Enviado em 30/03/2018 - 21:51h


Observe que o operador de "diferença" é o != e não =!.



Nossa cara, realmente era um errinho besta, obrigado me ajudou bastante









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts