Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme sur fonction basiques en c

Sujet résolu
    14 février 2020 à 12:50:11

    bonjour, 

    je cherche a faire un jeu du plus ou moins. mais j'ai un probleme sur mes fonctions. Quelqu'un peux t-il m'aider? je voudrais que la valeur de my number et number dans main et dans check soit les memes

    #include <stdlib.h>
    #include <stdio.h>
    
    int check (int MyNumber, int number){
    
    
        if (MyNumber < number){
            printf( "Le nombre est plus grand que %d",MyNumber);
    	}
    	else if (MyNumber > number){
            printf( "Le nombre est plus petit que %d",MyNumber);
    	}
    }
    
    int main (void){
        srand(time(NULL));
        int MyNumber;
        int number = rand()%100;
    	printf("%d \n",number );
    	printf("Donne un nombre : \n");
    	scanf("%d",&MyNumber);
        check();
    
        return(0);
    }



    -
    Edité par ANATOLEBABIN 14 février 2020 à 13:23:54

    • Partager sur Facebook
    • Partager sur Twitter
      14 février 2020 à 13:19:42

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : probleme sur fonction basiques en c)

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        14 février 2020 à 13:21:46

        Bonjour,

        Ta fonction  check  est censée avoir 2 paramètres ...

        • Partager sur Facebook
        • Partager sur Twitter
          14 février 2020 à 13:23:00

          Salut, Premièrement il faut que tu mette ton code dans le message avec le bouton "</>" dans l'éditeur.

          Ensuite tu utilise la fonction time alors que tu n'a pas inclus <time.h>.

          T'a deux variables avec des noms trés similaires, on peut confondre.

          tu utilise ta fonction check() sans passer les arguments.

          Une fonction a des variables appelées paramètres qu'elle reçoit a l'appel (on les nomes alors arguments). Quand tu appelle ta fonction, tu dois lui donner les arguments de cette manière : fonction(param_1, param_2);. Les variables number et MyNumber du main et celles de check NE SONT PAS LES MÊMES !!! malgré le fait qu'elles aient le même nom.

          • Partager sur Facebook
          • Partager sur Twitter
            14 février 2020 à 13:28:22

            L'InternetSansFil a écrit:

            Salut, Premièrement il faut que tu mette ton code dans le message avec le bouton "</>" dans l'éditeur.

            Ensuite tu utilise la fonction time alors que tu n'a pas inclus <time.h>.

            T'a deux variables avec des noms trés similaires, on peut confondre.

            tu utilise ta fonction check() sans passer les arguments.

            Une fonction a des variables appelées paramètres qu'elle reçoit a l'appel (on les nomes alors arguments). Quand tu appelle ta fonction, tu dois lui donner les arguments de cette manière : fonction(param_1, param_2);. Les variables number et MyNumber du main et celles de check NE SONT PAS LES MÊMES !!! malgré le fait qu'elles aient le même nom.

            oui mais justememnt je veux quelle aient les memes valeurs comment faire?

            magma a écrit:

            Bonjour,

            Ta fonction  check  est censée avoir 2 paramètres ...

            ce n'est pas le cas ici?



            -
            Edité par ANATOLEBABIN 14 février 2020 à 13:29:27

            • Partager sur Facebook
            • Partager sur Twitter
              14 février 2020 à 13:32:57

              Ta ligne 22 devrait être

              check(MyNumber, number);



              • Partager sur Facebook
              • Partager sur Twitter
                14 février 2020 à 13:35:41

                Si tu veux qu'elles ait les mêmes, leur donner le même nom ne changera rien, ce sont des variables différentes, tu as plusieurs options, mais dans ton cas, passe les simplement en paramètre.

                 Ce que magma a voulu dire c'est que si tu définis une fonction avec x paramètres, tu dois donner x valeurs a l'appel. ex : check(number, MyNumber);. MAIS CHANGE LE NOM DE TES VARIABLES !!!

                • Partager sur Facebook
                • Partager sur Twitter
                  14 février 2020 à 13:39:43

                  magma a écrit:

                  Bonjour,

                  Ta fonction  check  est censée avoir 2 paramètres ...

                  ce n'est pas le cas ici?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 février 2020 à 14:01:22

                    Enfaite on vient de te répondre, si t'a pas compris, tu as définis ta fonction avec deux paramètres de type int : MyNumber et number :

                    int check (int MyNumber, int number)

                    Quand tu veux utiliser ta fonction, tu dois dire son nom, mettre des parenthésés et LES VALEUR QUE TU VEUX DONNER A TES PARAMETRES.

                    la fonction check EST INDEPENDENTE DU MAIN ET LES VARIABLES QU'ELLES CONTIENNENT N'ON RIEN A VOIR ! check ne n'a pas accés aux varriables qui se trouvent dans le main, SAUF SI TU LES PASSES EN ARGUMENT. tu dois donc faire ceci : check(MyNumber, number);. DANS LE MAIN, A L'APPEL. Certaines personnes recommendent de ne pas donner le même nom aux paramètres de fonctions et aux variables du main, voila pourquoi. Il y as bien 2 paramètres dans la déclaration de ta fonction, mais a l'appele, tu ne leurs donne pas de valeur.

                    Autre chose : ta fonction check est censé retourner un int, c'est dans sa déclaration, mais il n'y as pas de "return <int>" dans son corps, je pense que tu dois avoir des problèmes de compilation a cause de ça.

                    -
                    Edité par L'InternetSansFil 14 février 2020 à 14:04:52

                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 février 2020 à 14:54:12

                      Ah c'est bon j'ai trouvé et compris merci beaoucoup !!

                      -
                      Edité par ANATOLEBABIN 14 février 2020 à 14:57:31

                      • Partager sur Facebook
                      • Partager sur Twitter

                      probleme sur fonction basiques en c

                      × 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