Equation second degré
Bonjour,
j'ai une question, lorsque j'ecris mon programme qui résoud une equation en second degré avec des "float" ça nmarche po "lequation n'admet pas de solution" par contre quand jutilise des "doubles" ça marche, SVP pouvez vs me dire pourquoi???
j'ai une question, lorsque j'ecris mon programme qui résoud une equation en second degré avec des "float" ça nmarche po "lequation n'admet pas de solution" par contre quand jutilise des "doubles" ça marche, SVP pouvez vs me dire pourquoi???
1 réponse
-
ModérateurIl faudrait voir ton code !
-
voilà le programme:
#include<iostream.h>
#include<stdlib.h>
#include<math.h>
main()
{
float a,b,c,delta,x,x1,x2;
cout<<"donnez a,b,c tq ax2+bx+c=0\n";
cin>>a;
cin>>b;
cin>>c;
if(a==0)
{
if(b==0)
{
if(c==0)
cout<<"infinité de solutions";
else
cout<<"pas de solution";
}
else
cout<<"x="<<-c/b;
}
else
{
delta=b*b-4*a*c;
if(delta>0)
{
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
cout<<"x1="<<x1<<"\n";
cout<<"x2="<<x2;
}
else
if(delta==0)
{
x=-b/(2*a);
cout<<"x="<<x;
}
else
cout<<"pas de solution";
}
system("pause");
}
jutilise un compilateur (dev c++) -
-
-
ModérateurIci tu as donc théoriquement delta=0, mais le problème avec les valeurs flottantes c'est qu'il y a toujours des arrondis... Affiche delta pour voir, j'imagine que tu as plutôt quelque chose comme -0.000000001 et du coup tu rentres dans le cas de figure delta négatif, même si ce n'est pas vrai.
-
-