1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#include<stdio.h>
#include<math.h>
int main() { // On doit spécifier explicitement que main retourne int
float x1,x2,a,b,c,d;
printf("a=");
scanf("%f" , &a);
printf("b=");
scanf("%f" , &b); // % n'est pas &
printf("c=");
scanf("%f" , &c);
d = b*b-4*a*c; // pourquoi des parenthèses ? pour alourdir la lecture ?
if(a==0)
if(b!=0){
x1=-c/b;
printf("one root solution %f",x1); // chaine de caractères
// mais l'utilisateur n'avait pas le droit de connaitre la solution ?
}
else printf("no solution"); // chaine de caractères
// message faux : si en plus c==0, il y a une infinité de solution
else // bien sûr qu'ici a!=0 !!!
if (d>0){
x1=(-b-sqrt(d))/(2*a); // erreurs de parenthèses
x2=(-b+sqrt(d))/(2*a); // erreurs de parenthèses
printf("root is%f\n", x1);
printf("root is%f\n", x2);
}
else
if (d==0){// manquait le bloc {}
x1=-b/2*a;
//x2=x1; x2 n'est plus utilisé !!!
printf("only one root%f\n", x1);
}
else // (d<0){ : ce code ne signifie rien
printf("no roots\n"); // pourquoi un %f ?
return 0; // main renvoie int
} |
Partager