lksmodos
(usa Ubuntu)
Enviado em 25/03/2016 - 21:27h
lipman escreveu:
segue o codigo corrigido:
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
float delta, x1 , x2;
delta = (b*b) - (4*a*c);
x1 = ((-b)* (sqrt(delta))) / (2*a);
x2 = ((-b) * (-sqrt(delta))) /(2*a);
scanf("%d %d %d", &a, &b, &c);
if(delta == 0)
{
printf("Apenas existe uma solucao : %f", x1);
}
else if (delta < 0){
printf("N ha solucao real");
}
else if (delta > 0)
{
printf("Ha duas solucoes reais: %f e %f", x1 , x2);
}
return 0;
}
porem ainda da esse erro:
/tmp/cc0lxnR4.o: na função `main':
test.c:(.text+0x61): referência indefinida para `sqrt'
test.c:(.text+0x99): referência indefinida para `sqrt'
collect2: error: ld returned 1 exit status
T+
lipman seu código ainda contem alguns erros, como calcular primeiro o delta e capturar as variáveis depois, e da pra simplificar mais um pouco, e tem um outra coisa se estiver compilando pelo prompt e necessário utilizar gcc
gcc prog.c -o prog -lm esse -lm faz reconhecer a biblioteca math.h. segue meu código abaixo.
#include <stdio.h>
#include <math.h>
int main()
{
int a = 0,b = 0,c = 0;
double delta, x1 , x2, aux;
scanf("%d %d %d",&a,&b,&c);
delta = (b*b) - (4*a*c);
aux = sqrt (delta);
x1 = (-b)* (aux) / (2*a);
x2 = (-b) * (-aux) /(2*a);
if(delta == 0)
{
printf("Apenas existe uma solucao : %f", x1);
}
else if (delta < 0){
printf("N ha solucao real");
}
else if (delta > 0)
{
printf("Ha duas solucoes reais: %f e %f", x1 , x2);
}
return 0;
}