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 post
Compartilhar em outros sites

8 e -24 são os numeradores das raízes, teu programa não tá dividindo pelo denominador (2*a). (Dica: olho nos parênteses)

  • Curtir 1
Link para o post
Compartilhar em outros sites
  • Simon Viegas alterou o título para Equação segundo grau em C

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...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!