Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] un petit problème avec la fonction if

Sujet résolu
    30 novembre 2005 à 21:53:15

    Coucou tout le monde.
    Alors voilà, d'abord exuser moi si le problème à déjà été rencontré, j'ai fait une recherche mais rien trouvé.
    J'ai un petit problème avec mon mini prog de C

    Citation

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

    int main(int argc, char *argv[], int nom)
    {
    printf("bonjour\n\t\t");
    system("PAUSE");
    printf("quel est ton nom?");
    if (scanf("%s", &nom))nom = "X";
    system("PAUSE");
    printf("Salut %s\n .\n", nom);
    system("PAUSE");
    return 0;
    else
    printf("ah, je suis desole j'attendais une autre reponse\n");
    system("PAUSE");
    printf("ceci va s'éteindre désolé\n");
    system("PAUSE");
    return 0;
    }


    et en fait, Dev me met :

    Citation : dev

    waring : assigment makes integer from pointer without a cast



    parce que en fait, je crois que je sais pas qu'est ce qu'il faut mettre pour if et donc voilà, si quelqu'un pouvait m'aider s'il vous plaît merçi ;)

    PS : faites pas attention a ce que j'ai écrit :p
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      30 novembre 2005 à 22:03:43

      if n'est pas une fonction.

      Revois ton cours d'urgence. Après on parle :)
      • Partager sur Facebook
      • Partager sur Twitter
        30 novembre 2005 à 22:37:43

        Salut,

        juste pour savoir si j'ai compris ... Ton programme demande le nom de l'utilisateur, si il vaut X, il met "salut X" et sinon il met que c'est pas la réponse attendue et quitte le main ?
        • Partager sur Facebook
        • Partager sur Twitter
          30 novembre 2005 à 22:58:08

          Si un codeur plus experimenté pouvait montrer un exemple d'instruction if/else, je suis preneur :)

          (comment ca je bouffe a tout les rateliers).

          Sinon je ne sais pas si c'est normal mais il n'y a pas de ";" apres else ....
          • Partager sur Facebook
          • Partager sur Twitter
            30 novembre 2005 à 23:07:08

            Codeur plus experimenter je ne crois pas mais sinon pour moi cela fais :


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

            int main(int argc, char *argv[], int nom)
            {

            int i = 2;

            if( i==2 )
              {
                printf("i a pour valeur 2\n");
              }

            else
              {
                printf("pas normal tous ça\n");
              }
            system("pause");
            return 0;
            }


            Sinon met ton code dans des balise code c' est plus lisible

            Son code pour les autres :


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

            int main(int argc, char *argv[], int nom)
            {
            printf("bonjour\n\t\t");
            system("PAUSE");
            printf("quel est ton nom?");
            if (scanf("%s", &nom))nom = "X";
            system("PAUSE");
            printf("Salut %s\n .\n", nom);
            system("PAUSE");
            return 0;
            else
            printf("ah, je suis desole j'attendais une autre reponse\n");
            system("PAUSE");
            printf("ceci va s'éteindre désolé\n");
            system("PAUSE");
            return 0;
            }


            Sinon pour ton code il manque tout les { } tu doit crée des blocks pour tes conditions
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              1 décembre 2005 à 7:31:15

              En fait ça ressemble strictement à rien, déjà de foutre "int nom" dans les arguments de main, ensuite de faire correspondre tout une chaîne de caractères à un int (nom), en outre de ne pas mettre de blocs, enfin de tester l'égalité de nom à 'X' (et non pas "X") de cette façon.

              Relis ton cours, bis.
              • Partager sur Facebook
              • Partager sur Twitter
                1 décembre 2005 à 8:50:40

                Je pense surtout que c' est encore un melange Php -> C/C++ qui est totalement faux

                PHP est different de C/C++

                Ton code ne peut pas marcher car:

                Les variables sont mal initialisé , il y a aucune structure de bloc , enfin bon rien ... Ou a tu trouver ce cours ?? Si tu veux aller plus loins que la ou Mateo c' est arreté dans son cours fais une recherche sur google , et trouve un tuto de confiance ( pas ecrit par n' importe qui )
                • Partager sur Facebook
                • Partager sur Twitter
                  1 décembre 2005 à 19:39:06

                  OKI merci tout le monde, je réessaierai avec les blocs, et j'irai relire le tuto, que j'ai très certainement mal lu, ne m'en veuillez pas, je tiendrais au courant ;) merci
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 décembre 2005 à 20:24:10

                    Tiens si ca marche toujours pas voila ton programme remasterisé a ma facon:


                    # include <iostream>

                    using namespace std;

                    int main()
                    {
                            char nom = 0;
                            cout << "bonjour\n\t\t";

                            system("PAUSE");
                           
                            cout << "quel est ton nom? ";
                            cin >> nom;

                            if(nom == 'X')
                            {
                                    system("PAUSE");
                                    cout << "Salut " << nom;
                                    system("PAUSE");
                            }
                        else
                            {
                                    cout << "ah, je suis desole j'attendais une autre reponse\n";
                                    system("PAUSE");
                                    cout << "ceci va s'eteindre desole\n";
                                    system("PAUSE");
                            }

                            return 0;
                    }


                    Et en plus y marche lol
                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 décembre 2005 à 20:53:03

                      arrêtez avec vos system("PAUSE"); à tout va, c'est pas portable, c'est moche et c'est très chiant.
                      Franchement voir un "Appuyez sur n'importe quelle touche pour continuer..." à chaque phrase, c'est plus contraignant que sympa. Et même pour l'utilisateur lambda.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        1 décembre 2005 à 21:47:07

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

                        int main(int argc, char *argv[])
                        {
                        char nom[100];
                        printf("bonjour\n\t\t");
                        system("PAUSE");
                        printf("quel est ton nom?");
                        scanf("%s",&nom);
                        system("PAUSE");
                        printf("Salut %s\n",nom);
                        system("PAUSE");
                        return 0;


                        exemple d'itération :
                        int a,b,somme_reelle, somme_user;
                        printf("entrez un entier : ");
                        scanf("%d",&a);
                        printf("entrez un second entier :");
                        scanf("%d",&b);
                        printf("Quelle est la somme de ces entiers selon vous ?");
                        scanf("%d",&somme_user);
                        somme_reelle=a+b;
                        if(somme_reelle == somme_user)
                        {
                        printf("Bien joué, vous êtes une tête en maths ;-)\n")
                        }
                        else
                        {
                        printf("Vous êtes nul, la somme des de ces deux entiers est  %d\n",somme_reelle);
                        }

                        return 0;
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 décembre 2005 à 21:51:36

                          Utilisation de if en C:


                          if (conditionA)//si A est remplie
                          {
                             instruction;
                          }
                          else//a n'est pas remplie
                          {
                             instructions;
                          }


                          /*NOTE*/
                          //si il n'y a QU'UNE instruction:

                          if(conditionA)instruction;//est valable


                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 décembre 2005 à 22:02:21

                            Voila je vien de finir de lire le new chapitre c/c++ (merci M@t) et je me suis amuser a chipotté, mais j'ai un probleme avec IF

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

                            int main(int argc, char *argv[])
                            {
                              long compteEnBanque = 6500000;
                              long reponse;
                             
                              printf("Vous avez %d euros sur votre compte\n", compteEnBanque);
                              printf("Voulez vous vider votre compte ? (oui-non) \t");
                              scanf("%d, &reponse");
                                 if (reponse == 'oui')
                                 {
                                 compteEnBanque = 0;
                                 printf("\nVous avez %d euros sur votre compte\n", compteEnBanque);
                                 }
                                 if (reponse == 'non')
                                 {
                                 printf("\nOk bonne journer\n\n");
                                 }
                             
                              system("PAUSE");     
                              return 0;
                            }


                            Vous pouvez me dire pourquoi sa va pas ?
                            MERCI
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              1 décembre 2005 à 22:12:24

                              Malheur ! m@t a oublié de parler plus que ça du type char, et il a aussi dit qu'il utilisait souvent long :waw:

                              Quand tu crées une variable reponse elle est de type long donc dedans tu ne peux stocker que un nombre entier, alors que là tu voudrais une chaîne.

                              Mon conseil : fais plutôt un char reponse; ensuite scanf("%c", &reponse); et enfin if(reponse == 'o') ou if(reponse =n 'n')
                              En fait ça corrspone à demander une réponse de une seule lettre. Les chaînes de caractères c'est plus compliqué ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 décembre 2005 à 11:20:39

                                Citation : louisclem

                                Malheur ! m@t a oublié de parler plus que ça du type char, et il a aussi dit qu'il utilisait souvent long :waw:



                                Oui c'est vrai, je suis pas très d'accord avec l'utilisation du long à tour de bras. Peut etre que sur un proc x86, int et long occupe la même place en mémoire, mais c'est pas forcément vrai sur d'autres plate-forme.

                                Le type int est le type le plus grand que le processeur peut traiter en un coup.
                                Sur les microcontroleur 16 bits par exemple, un int vaut donc 16 bits, et le long vaut 32 bits (par exemple). Et si on a appris à utiliser un long pour un peu tout, ça peut faire très mal sur ce genre de plateforme, où la mémoire est très limitée (quelques dizaines de Ko).
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 décembre 2005 à 16:35:02

                                  Je vous remercie tous, en fait, j'été pas dans mon jour, alors j'ai mis un peu n'importe quoi, depuis je m'amuse avec if et while, donc voilà, merci tout le monde, je met mon code à disposition au cas ou :p


                                  pour vous tuer

                                  int main(int argc, char *argv[])
                                  {
                                    long Nombre_de_vies;
                                    Nombre_de_vies = 4;
                                     system("PAUSE");     
                                     
                                     while (Nombre_de_vies < 10)
                                     {
                                           Nombre_de_vies ++ ;
                                     printf("tu as gagné une vie, tu es a %d vies\n", Nombre_de_vies);
                                     }
                                     system("PAUSE");
                                     printf("ah mais t'a beaucoup trop de vies maintenant \n comment je fais pour te tuer moi ??\n");
                                     printf("ah je sais je vais utiliser ma potion\n");
                                     system("PAUSE");
                                     printf("tu descends dans ta vie\n");
                                     while (Nombre_de_vies > 1)
                                     {
                                           Nombre_de_vies = Nombre_de_vies - 1;
                                           printf("tu as %d vies.\n", Nombre_de_vies);
                                     }
                                    printf("Ahah c'est bete de mourir comme ca hein :D\n");
                                    system("PAUSE");
                                    return 0;
                                  }


                                  Interdit au moins de 18

                                  int main(int argc, char *argv[])
                                  {
                                    char age;
                                    printf("bonjour\n\t\t");
                                    system("PAUSE");
                                    printf("quel est ton age?\n");
                                    scanf("%d", &age);
                                        while (age <= 18)
                                    if (age >= 18)
                                       {         
                                            printf("tu as le droit de regarder ce programme super trop interessant, parce que tu as %d ans\n", age);
                                            system("PAUSE");
                                            return 0;
                                       }
                                    else
                                       {
                                         printf("ah, je suis desole tu es trop jeune, ou peut être tu as fait une erreur ??\n ", age);
                                         printf("retente ta chance\n");
                                         printf("quel est ton age?\n");
                                         scanf("%d", &age);     
                                       }
                                  }
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  [C] un petit problème avec la fonction 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