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