Partage
  • Partager sur Facebook
  • Partager sur Twitter

Poblemme avec des variables

pour resoudre equation du second degre

Sujet résolu
Anonyme
    3 décembre 2005 à 20:38:37

    Bonjours .
    Je suis en seconde et me suis "amuse" a coder un logiciel pour resoudre des equation de type ax²+bx+c=0.
    Bon jai code mais mon programme me sors toujours des resultat qui valent 0.Et ca m enerve ,en plus je ne vois pas d ou vient lerreur .Voici mon code :
    #include <stdio.h>
    #include <math.h>
    
    int a,b,c,delta,solution1,solution2,sol3;
    
     
    
    
    int saisie()
    {
    printf("entrer a : \n");
    scanf("%d",&a);
    
    printf("entrer b : \n");
    scanf("%d",&b);
    
    printf("entrer c : \n");
    scanf("%d",&c);
    return(0);
    }
    
    int traitement(a,b,c)
    {  
        /*a=0;
        b=0;
        c=0;
        delta=0;
        solution1=0;
        solution2=0;
        sol3=0;*/
    delta=(b*b)/(4*a*c);/*on calcule delta*/
    if(delta<0)/*si il est < a 0 ;aucune sol */
    {
    printf("Aucun resulat pour l'equation \n");
    }
    
    if(delta=0)/*si il est = a 0 ;1 sol;sol3*/
    {
    sol3=(-b/2*a);
    printf("Un resultat qui vaut %f : \n",sol3);
    
    }
           
           if(delta>0)/*si il est > a 0 ;2 sol;solution1 et solution2*/
           {            
           solution1=((-b+sqrt(delta))/2*a);
           solution2=((-b-sqrt(delta))/2*a);         
          
           }
    return(0);
    
    }
    
    int main()
    {
      
    printf("Resolution dequation du secon degre de type ax²+bx+c=0 ou x est inconnu \n");
    saisie();
    traitement(a,b,c);
    
    printf("Il y a 2 resultat :  un vaut %f  ",solution1);
    printf("et lautre vaut : %f \n",solution2);
    system("Pause");
    return(0);
    }
    

    Merci davance car la je bloque .
    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2005 à 20:50:24

      Un truc dont je suis sur c'est que Delta = b²-4ac est non (b*b)/(4*a*c), je me penche sur la question pour le reste !

      Edit : Il y a des incoérances, tu déclares tes variables de solutions en "int" et ensuite tu mets "%f" qui est utilisé pour les variables en "float"...
      (Je peux faire des erreurs j'apprends en même temps que tous les zéros).

      deLux
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2005 à 23:14:23

        Citation : davidbrcz

        if(delta=0)


        il faut 2 "="
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2005 à 23:28:48

          #include <stdio.h>
          #include <stdlib.h>
          #include <math.h>

          long a,b,c,delta;//Variables a,b,c en long (-2 147 483 648 à 2 147 483 647)
          float solution1,solution2,sol3;//Variables des solutions en float (3.4e-38 à 3.4e38)

          int saisie()//Fonction de saisie des variables a, b et c.
          {
           printf("Entrez a : \n");
           scanf("%d",&a);//Variable a

           printf("Entrez b : \n");
           scanf("%d",&b);//Variable b

           printf("Entrez c : \n");
           scanf("%d",&c);//Variable c
          return(0);
          }

          int traitement(a,b,c)//Fonction de traitement
          {
              /*a=0;
              b=0;
              c=0;
              delta=0;
              solution1=0;
              solution2=0;
              sol3=0;*/

          delta = ((b*b)-(4*a*c));/*on calcule delta*/

          if(delta<0) { /*si il est < a 0 ;aucune sol */
               printf("Aucun resulat pour l'equation \n");
               
               }else if (delta==0) { /*si il est = a 0 ;1 sol;sol3*/
               
                     sol3=(-b/(2*a));//Calcule de l'unique solution
                     printf("Un resultat qui vaut %f : \n",sol3);
               
               }else if (delta>0) { /*si il est > a 0 ;2 sol;solution1 et solution2*/         
                     solution1 = ( -b + sqrt(delta) ) / ( 2*a );//Calcule de la solution 1
                     solution2 = ( -b - sqrt(delta) ) / ( 2*a );//Calcule de la solution 2 
                     printf("Il y a 2 resultats :  un vaut %f  ",solution1);
                     printf("et l'autre vaut : %f \n",solution2);       
               }
               
          return(0);
          }

          int main()//Fonction principale
          {
           printf("Resolution dequation du second degre de type ax*x+bx+c=0 ou x est inconnu \n");
           saisie();//Fonction de saisie
           traitement(a,b,c);//Fonction de traitement
           
          system("Pause");//Fin du programme
          return(0);
          }


          Voila ce que j'ai fais est cela marche très bien ^^

          deLux

          P.S : Après tu peux t'amuser à mettre une boucle pour en recalculer une autre. :D
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            4 décembre 2005 à 11:21:15

            Je void d ou vien mon erreur.Pour moi delta vallait
            ((b*b)/(4*a*c)) et non ((b*b)-(4*a*c)).
            Merci a tous .
            • Partager sur Facebook
            • Partager sur Twitter

            Poblemme avec des variables

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown