Programme en C...

Bonjour,j'ai un problem avec la compilation d'une source assez petite qui fai un tou simple calcul...voilà la source :
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
long a, b, x;
printf("a : ");
scanf("%ld", &a);
printf("b : ");
scanf("%ld", &b);
b / a = x;
printf ("%ld / %ld = %ld\n", b, a, x);

system("PAUSE");
return 0;
}
j'arrive pas a le faire marcher(c moi qui la ecrit) et oui je sai que je suis debutant dans le language C . merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.8

13 réponses

  1. Modérateur
    ben, chez moi ça marche
    0
    1. le problem se pose quand je compiole et je donne a "a" la valeur 0 !
      0
      1. Modérateur
        Salut,

        il faut penser à mettre une condition d'arrêt pour ta boucle while ;-)
        Essaie ça
        #include <stdio.h>
        #include <stdlib.h>
        
        int
        main (int argc, char *argv[])
        {
          long a, b, x;
        
          printf (" :/*/*/*/: ax=b :/*/*/*/:\n\n\n");
          while (1){
            printf ("a : ");
            scanf ("%ld", &a);
            printf ("b : ");
            scanf ("%ld", &b);
            if (a != 0){
              x = b / a;
              printf ("%ld = %ld / %ld\n", x, b, a);
              printf ("S = %ld \n\n\n\n\n", x);
            } else
                if (b == 0){
                  printf ("0.x=0\nS = R\n\n___RECOMMENCER___\n");
                }else {
                  printf ("X = 0\n!*****S = equation impossible*****!\n");
                  return -1;
                }
          }
          system ("PAUSE");
          return 0;
        }
        
        0
        1. Salut !
          C'est quoi le message d'erreur ?
          C'est toujours pareil, a chaque fois que tu poses ton code et qu'il y a un souci, dis où est le problème.

          EDIT :
          Ce n'est pas else qu'il faut mettre. Ou alors tu mets rien derrière ce qui serait plus logique.
          Ta boucle est infinie.
          J'ai compilé, lu les messages d'erreurs.
          En faisant comme ça tu résouts ton problème en 2 sec.
          C'est que tu as essayé de faire ?
          Dis ce que tu piges pas.
          0
          1. j'ai encore un problem :s :

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

            int main(int argc, char *argv[])
            {
            long a, b, x;

            printf(" :/*/*/*/: ax=b :/*/*/*/:\n\n\n");
            while (1)
            {
            printf("a : ");
            scanf("%ld", &a);
            printf("b : ");
            scanf("%ld", &b);
            if (a != 0)
            {
            x = b /a;
            printf ("%ld = %ld / %ld\n", x, b, a);
            printf("S = %ld \n\n\n\n\n",x);
            }
            else (a == 0)
            {
            if (b == 0 )
            {
            printf("0.x=0\nS = R\n\n");
            }
            else
            {
            printf("X = 0\nS = equation impossible");
            }
            }
            }
            system("PAUSE");
            return 0;
            }

            pouriez vous m'aider SVP ?
            0
            1. woups,je m'exuse sa vient juste de marcher, lol je sai pas pk,mais ma source vient de marcher aussi sans que je la modifie...merci de ton aide precieuse lami20j je te serai reconnaissant si tu me file ton adresse msn, ou que si tu m'ajoute => stone-_-cold@hotmail.fr ,je veut programmer un logiciel un peut compliquer pour un debutant donc j'aurai besoin de l'aide ;) s'il te plait =)
              0
              1. Modérateur
                affiche les messages que tu as à la compilation
                0
                1. ta source marche parfaitement(j'ai enlever le commentaire de system("pause") psk je suis sous winmerde) je n'arrive pas a trouver la diference entre ma source et la tienne,pourtant la tienne marche contrairement a la mienne... tu peut m'aider a comprendre stp ?
                  0
                  1. Modérateur
                    sa ne marche pas,jy avait deja penser a cette solution MR.lami20j ,mais sa ne marche pas.... :s
                    ben, chez moi ça marche (j'ai commenté system("PAUSE") puisque je suis sous GNU/Linux
                    lami20j@debian:~/trash$ cat ccm.c
                    #include <stdio.h>
                    #include <stdlib.h>
                    
                    int main(int argc, char *argv[])
                    {
                            long a, b, x;
                            printf("a : ");
                            scanf("%ld", &a);
                            printf("b : ");
                            scanf("%ld", &b);
                            x = b / a;
                            printf ("%ld / %ld = %ld\n", b, a, x);
                    
                    //      system("PAUSE");
                            return 0;
                    }

                    La compilation et le résultat
                    lami20j@debian:~/trash$ gcc ccm.c
                    lami20j@debian:~/trash$ ./a.out
                    a : 4
                    b : 80
                    80 / 4 = 20
                    
                    0
                    1. le programme a l'air correct donc essaye avec un autre compilateur
                      0
                      1. sa ne marche pas,jy avait deja penser a cette solution MR.lami20j ,mais sa ne marche pas.... :s
                        0
                        1. Modérateur
                          Salut,
                          b / a = x;
                          la partie gauche doit être une lvalue.
                          c'est toi c'est une expression
                          #include <stdio.h>
                          #include <stdlib.h>
                          
                          int main(int argc, char *argv[])
                          {
                                  long a, b, x;
                                  printf("a : ");
                                  scanf("%ld", &a);
                                  printf("b : ");
                                  scanf("%ld", &b);
                                  x = b / a;
                                  printf ("%ld / %ld = %ld\n", b, a, x);
                          
                                  system("PAUSE");
                                  return 0;
                          }
                          
                          0
                          1. c'est quoi le message d'erreur du compilateur ?
                            0