Ir ao conteúdo
  • Cadastre-se

Ajuda simples em calcular raízes


msj238120s

Posts recomendados

Olá, estou aprendendo a programar em C e estou com um problema.:

Quando eu executo esse código, que deveria calcular as raízes da função quando o usuário entra com o "a,b,c" da função, ele não está funcionando como deveria e ainda está dando a mensagem duplicada.

Se alguem puder me ajudar, Obrigado desde ja
 

 

#include<stdio.h>
#include<math.h>
 
int main () {
float a, b, c, delta, x, x0, x1;
scanf("%f %f %f", &a, &b, &c);
 
delta = (b*b ) - (4*a*c);
 
if(delta < 0) {
printf("Equacao fornecida nao possui raiz \n");
}
if(delta = 0)
x = (-b)/(2*a);
printf("A equacao fornecida possui a raiz %.4f \n", x);
}
 
if(delta > 0)
x0 = ( (-b )+ sqrt(delta))/(2*a);
x1 = ( (-b )  - sqrt(delta))/(2*a);
 
if (x0 > x1)
  printf("A equacao fornecida possui as raizes %.4f e %4f.\n", x1, x0);
 
if (x1 > x0)
  printf ("A equacao fornecida possui as raizes %.4f e %4f.\n", x0, x1);
 
 
 
return 0;
}
Link para o comentário
Compartilhar em outros sites

Isso acontece quando há uma raíz.

Você tem que abrir um bloco no if(delta > 0).

if(delta > 0){x0 = ( (-b )+ sqrt(delta))/(2*a);x1 = ( (-b )  - sqrt(delta))/(2*a); if (x0 > x1)  printf("A equacao fornecida possui as raizes %.4f e %4f.\n", x1, x0); if (x1 > x0)  printf ("A equacao fornecida possui as raizes %.4f e %4f.\n", x0, x1); }
Para essas instruções ficar no escopo desse if
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Boa noite.

Tem um problema no segundo if e alguns problemas na abertura e fechamento das chaves.

#include<stdio.h>#include<math.h> int main () {    float a, b, c, delta, x, x0, x1;    scanf("%f %f %f", &a, &b, &c);     delta = (b*b ) - (4*a*c);     if(delta < 0) {             printf("Equacao fornecida nao possui raiz \n");    }    if(delta == 0){             x = (-b)/(2*a);             printf("A equacao fornecida possui a raiz %.4f \n", x);    }    if(delta > 0){             x0 = ( (-b )+ sqrt(delta))/(2*a);             x1 = ( (-b )  - sqrt(delta))/(2*a);              if (x0 > x1)                printf("A equacao fornecida possui as raizes %.4f e %4f.\n", x1, x0);                 if (x1 > x0)                   printf ("A equacao fornecida possui as raizes %.4f e %4f.\n", x0, x1);     } getch();return 0;} 

Agora funciona. Vou só conferir se o resultado está correto rsrs.


Obs: use identação cada vez que for abrir uma chave.

Em funções com mais de uma linha de código (mais de um comando) use sempre as chaves. 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!