Partage
  • Partager sur Facebook
  • Partager sur Twitter

créer une fonction

    21 décembre 2005 à 10:55:12

    alors voila je voulais savoir comment créer une fonction. J'essaye , je me trompe, je réessaye et ça marche. Mais le code ne me parait pas corect :


    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h> \\ pour le lancer de dé



    int main(int argc, char *argv[]) \\ fonction principê
    {
    srand(time(NULL)); \\ pour le lancer de dé, grace au temps
    int de = 0;
    de = lancer_d6(de); \\ lance
    printf ("%ld\n" , de) ; \\ affiche la valeur
    system("PAUSE"); \\ pause et fin prog
    return 0;
    }


    int lancer_d6() \\ fonction qui lance le dé
    {
    int valeur_du_de = 0;
    valeur_du_de = rand()%6 + 1 ; \\ valeur_du_de se vois attribué un chiffre entre 1 et 6
    return (valeur_du_de ) ; \\ envoit valeur_du_de
    }




    -------------------
    de = lancer_d6(de); c'est pas de = lancer_d6(valeur_du_de ); qu'il falait mettre ???
    pourtant ce programe marche
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 décembre 2005 à 11:11:31

      Citation : Kitue

      de = lancer_d6(de); c'est pas de = lancer_d6(valeur_du_de ); qu'il falait mettre ???
      pourtant ce programe marche



      Regarde la déclaration de ta fonction :


      int lancer_d6() \\ fonction qui lance le dé
      {
      int valeur_du_de = 0;
      valeur_du_de = rand()%6 + 1 ; \\ valeur_du_de se vois attribué un chiffre entre 1 et 6
      return (valeur_du_de ) ; \\ envoit valeur_du_de
      }


      Il n'y a rien entre les parenthèses qui suivent le nom de la fonction quand tu l'a déclarée, elle n'a donc aucun paramètre. Donc quand tu appeles ta fonction tu ne doit rien mettre entres les parenthèses aussi, car la fonction n'attend aucun paramètre.

      Cette fonction se contente de générer un nombre aléatoire puis de le retourner. Dans main(), tu as créé un integer auquel tu a assigné comme valeur la fonction lacer_d6() :

      de = lancer_d6(); // Pas besoin de mettre quoi que ce soit entre les parenthèses


      de prend ainsi la valeur que retourne lancer_d6.
      En fait, le compilateur, quand il va voir ta ligne, va executer le code de la fonction et va remplacer "lancer_d6()" par la valeur que retourne la fonction (donc un nombre entre 1 et 6).

      En éspérant avoir pu t'aider...

      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2005 à 11:13:01

        Cette fonction est correcte, mais tu dois y mettre le prototype au debut de ton code de cette façon :

        // Les includes

        int lancer_d6(); \\ fonction qui lance le dé (avec un ;)

        // le reste (main, et ta fonction defini a la fin de ton code)

        Par contre quand tu l'appel il faut enlever "de", car ta fonction n'accepte aucun paramètre
        Si tu veux récuperer plusieurs variable dans une même fonction, c'est un peu plus compliquer mais c'est possible.

        EDIT : trop tard ^^
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2005 à 14:22:32

          Ok je crois avoir compris : vu que j'ai pas mis de paramètre à la fonction elle renvoit valeur_du_de



          PS : désolé pour l'autre topic je croyais que ça avais planté
          • Partager sur Facebook
          • Partager sur Twitter

          créer une fonction

          × 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