1036 - Fórmula de Bhaskara

Quando que você vai usar Bhaskara na sua vida? Agora!

Descrição

Solução

O enunciado já dá as dicas para gente, nós teremos resultados válidos se essas duas coisas acontecerem juntas:

  • O valor de A tem que ser diferente de zero;

  • O valor de delta tem que ser não-negativo.

Não há necessidade alguma de imprimir apenas um R1 caso delta seja igual a zero, até no ponto de vista matemático, quando delta é igual a zero, significa que temos duas raízes com o mesmo valor, não só uma raiz, então você pode imprimir as duas com o mesmo valor corretamente.

Você pode perceber que eu deixei para testar se A é diferente de zero depois do cálculo do delta, fiz isso apenas para simplificar o código.

#include <stdio.h>
#include <math.h>

int main(){
    double a, b, c, delta, R1, R2;

    scanf("%lf %lf %lf", &a, &b, &c);

    delta = b * b - 4 * a * c;

    if(a != 0 && delta > -1){
        R1 = (- b + sqrt(delta))/(2 * a);
        R2 = (- b - sqrt(delta))/(2 * a);
        
        printf("R1 = %.5lf\nR2 = %.5lf\n", R1, R2);
    }else{
        printf("Impossivel calcular\n");
    }

    return 0;
}

Last updated