Bonjours à tous,
je dois faire un programme calculant delta pour demain.
En le faisant, je me suis dit que, tant qu'à faire, je ferait bien un programme qui en même temps calcule les racines.
Cependant, quelque chose de bizarre se passe, pour les racine négative pas de problème mais quand delta est > ou = 0, il ne m'affiche pas les racines.
Voici mon programme en question :
- include<stdio.h>
- include<stdlib.h>
- include<math.h>
float calcul_delta (float a, float b, float c);
float calcul_racine_positive (float a, float b, float c, float delta);
float calcul_racine_negative (float a, float b, float c, float delta);
int main ()
{
float a = 0;
float b = 0;
float c = 0;
float delta = 0;
float x1 = 0;
float x2 = 0;
printf("veuillez rentrer a/b/c\n");
scanf("%f/%f/%f%*c", &a, &b, &c);
delta = calcul_delta(a,b,c);
printf("\ndelta vaut %0.2f%*c", delta);
if(delta < 0)
{
printf("\npas de racine reelle");
}
else if(delta = 0)
{
x1 = calcul_racine_positive(a,b,c,delta);
printf("\nla racine de votre equation est x1 = %0.2f%*c", x1);
}
else if(delta > 0)
{
x1 = calcul_racine_positive(a,b,c,delta);
x2 = calcul_racine_negative(a,b,c,delta);
printf("\nles racines de votre equation sont x1 = %0.2f%*c et x2 = %0.2f%*c", x1,x2);
}
getc(stdin);
return 0;
}
float calcul_delta (float a, float b, float c)
{
return(b*b)-(4*a*c);
}
float calcul_racine_positive (float a, float b, float c, float delta)
{
return(-b + sqrt(delta))/(2*a);
}
float calcul_racine_negative (float a, float b, float c, float delta)
{
return(-b - sqrt(delta))/(2*a);
}
Si vous avez des amélioration ou conseils (ou même n'importe quoi d'autre à dire), allez y.
Merci de vos réponses.