Ir ao conteúdo
  • Cadastre-se

C Equação segundo grau em C


Ir à solução Resolvido por Midori,

Posts recomendados

 

Meu programa aparentemente está funicionando corretamente, calcula algumas equações corretas. Mas em outras ele não termina a equação e não acha a raiz quadra final. 

Exemplo: coeficientes a = 2 b = 8 c -24

ele apresenta como saída raiz 1 = 8  raiz 2 = -24

ou seja, a raiz seria um número menor que esse porque 8 e -24, ainda tem raiz.

alguem poderia me dizer o erro ?

 

 

 

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


// Retorna o valor do delta
double Delta(int a, int b, int c) {
    return b * b -4 * a * c;
}

// Retorna o valor da raiz 1
double Raiz1(int a, int b, int c) {
    return (-b + sqrt(Delta(a, b, c))) / 2 * a;
}

// Retorna o valor da raiz 2
double Raiz2(int a, int b, int c) {
    return (-b - sqrt(Delta(a, b, c))) / 2 * a;
}

int main(void) {
    // definição das variaveis
    int x, y, z;
    double delta, raiz1, raiz2;

    // leitura das variaveis
    printf("digite valor de a:\n");
    scanf("%d", &x);
    if (x != 0){
    printf("digite valor de b:\n");
    scanf("%d", &y);
    printf("digite valor de c:\n");
    scanf("%d", &z);
    }

    // chamada das funções//
    delta = Delta(x, y, z);
    raiz1 = Raiz1(x, y, z);
    raiz2 = Raiz2(x, y, z);

    // e daqui pra baixo os printfs de acordo com os resultados e entradas//
    if (delta == 0 && x !=0){
        printf("as raizes apresentam o mesmo valor = %lf\n", raiz1);

    }

    if (x == 0){
        printf("os coficientes  nao formam uma equacao do segundo grau pois o coeficiente a = 0\n");
        return 1;

    }

    if (delta < 0){
        printf("as raizes nao puderam ser calculadas, pois o valor de delta eh negativo\n");
        return 2;
    }

    if (raiz1 != raiz2){
    printf("A Raiz 1 da equacao eh: %.1f\n", raiz1);
    printf("A Raiz 2 da equacao equacao eh: %.1f\n", raiz2);
    }


    printf("as raizes foram calculadas e exibidas com sucesso, ou seja,essa mensagem eh de encerramento, obrigado!\n");

    return 0;
}
 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...