Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de if .....

Mon petit programme tout cassé ?

    3 décembre 2005 à 10:24:37

    Voila mon programme marchait et puis j'ai rajouté un truc et cela ne marchait plus .... :(:'(
    Voilà le code :
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
      long nb; //c'est une déclaration des variables
      nb = 5;
      printf ("Compte jusqu'à %d , s'il te plait console .", nb);
      printf ("\n\n");
      nb = 1;
      printf ("%d", nb);
      printf("\n\n");
      nb = 2;
      printf ("%d", nb);
      printf ("\n\n");
      nb = 3;
      printf ("%d", nb);
      printf ("\n\n");
      nb = 4;
      printf ("%d", nb);
      printf ("\n\n");
      nb = 5;
      printf ("%d", nb);
      printf ("\n\n\n\n");
      printf ("Bravo ! Tu as reussi à compter jusqu'à %d !" ,nb);
      printf ("\nC'est bien ma petite console adoree ... \n\n\n\n");
      printf ("Maintenant, toi utilisateur ecris l'age que tu as s'il te plait .\n");
      long oui = 0;
      scanf("%d" , &oui);
     
      if (oui==12)
      {
      printf("\nTu as 12 ans !!! Réponds à l'autre question...\n\n");
      printf("Tu t'appelles comment ? \n");
     long nom = 0;
     scanf("%d", nom);
      if(nom=="louis", "Louis");
      {
      printf("\nTu t'appelles comme moi ! \nTu as le droit de quitter !\n\n");
      system("PAUSE");
      return 0;
    else
        {
            printf("C'est pas bien tu t'appelles pas Louis .... !!!!!");
            system"PAUSE";
            return 0;
            }
    }
       
    }
      else {
      printf("\nC'est pas bien tu n'as pas 12 ans ...\n");
      printf("Reessaye ...\n\n");
      oui = 0;
      scanf ("%d", &oui);
          if (oui==12)
      {
      printf("\n\nTu as 12 ans !!! Réponds à l'au tre question...\n\n");
      printf("Tu t'appelles comment ?");
     long nom = "je n'ai pas de nom";
      }
          else
      {
      printf ("\nTu n'as toujours pas l'age valide ...\n\n");
      system("PAUSE");     
      return 0;
      }

    }
     
    }
     




    Pouvez vous m'aidez ? Il me dit qu'il y a une erreur à la ligne où il y a

    Citation : Mon code

    if (nom=="louis" , "Louis")

    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2005 à 10:47:43

      essaye pas d'aller trop vite.

      long c'est un entier, pas une chaîne de caractères.

      en plus ton if est incompréhensible, il fait quoi le ', "Louis"' ici?

      puis on déclare les variables au début de la fonction, avant toutes instructions

      bref ton code est nawak, attend la suite du cours plutôt.
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2005 à 16:51:07

        Déjà, on compare pas une chaine comme ça, on utilise strcmp.
        Ensuite, les multiples tests de condition ça se fait pas comme ça. Si par exemple, tu veux qu'un if teste si une variable soit à 3 ou 5 tu dois faire comme ça :


        if((variable == 3) || (variable ==5))
        • Partager sur Facebook
        • Partager sur Twitter
          4 décembre 2005 à 18:42:00

          Euh, je pense qu'il y a plusieurs raisons, déjà pour entrer des lettres c'est pas %d mais %s (enfin, je crois corrigé moi si c'est pas ça) ensuite, je viens de lire sur le topic "convention et aide" :

          Citation : drexil

          une chaîne de caractères:

          * ne se déclare pas avec long ou double.
          * ne s'obtient pas avec un scanf("%d", &ma_variable);
          * ne se teste pas avec l'opérateur ==



          J'espère que c'est clair. Vous ne savez pas encore vous servir de chaînes de caractères, donc n'essayez pas, ou alors allez voir comment faire sur internet.


          donc voilà je pense que tu devrais attendre fais comme moi, je m'étais lancé aussi dans quelque chose avec les lettres, mais ça devient plus compliqué, alors patiente encore un peu ;)
          • Partager sur Facebook
          • Partager sur Twitter
            4 décembre 2005 à 19:02:18

            Pour les chaînes de caractères, c'est bien %s et pour un caractère, c'est %c.

            A noter qu'un caractère peut être vu comme un entier (le contraire n'est pas vrai), contrairement aux chaînes.

            De même, la lecture d'une chaîne ne nécessite pas de &, mais les autres types si (vous verrez pourquoi avec l'arrivée des pointeurs).

            Donc : pour un entier

            int monEntier;
            scanf("%d", &monEntier);


            mais pour une chaîne :

            char maChaine[50]// 50 caractères maxi
            scanf("%s", maChaine);



            • Partager sur Facebook
            • Partager sur Twitter
              4 décembre 2005 à 19:13:45

              ... heu ben en fait rien. Long, c'est pour les nombres.
              • Partager sur Facebook
              • Partager sur Twitter
                4 décembre 2005 à 19:20:02

                Citation : SuperMat

                Pour les chaînes de caractères, c'est bien %s et pour un caractère, c'est %c.

                A noter qu'un caractère peut être vu comme un entier (le contraire n'est pas vrai), contrairement aux chaînes.

                De même, la lecture d'une chaîne ne nécessite pas de &, mais les autres types si (vous verrez pourquoi avec l'arrivée des pointeurs).

                Donc : pour un entier


                int monEntier;
                scanf("%d", &monEntier);



                mais pour une chaîne :


                char maChaine[50]// 50 caractères maxi
                scanf("%s", maChaine);




                scanf pour un entier à la limite, mais pas pour une chaîne :/
                fgets est bcp mieux pour ça:

                char chaine[51];
                fgets(chaine, 50, stdin);
                • Partager sur Facebook
                • Partager sur Twitter

                Problème de if .....

                × 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