Partage
  • Partager sur Facebook
  • Partager sur Twitter

Débutant dans les fonctions

    26 juin 2006 à 23:11:01

    Apres avoir suivi le magnifique tutorial sur le C jai voulu comme indiquer créer les fonctions permettant au petit jeu du plus ou moins de fonctionner.
    J'ai donc coder ceci
    #include <stdio.h>
    #include <stdlib.h>

    long compareNombre(long nombreSaisi)
    {
            long NombreMystere=10;
            int Mystere=0
            Mystere=NombreSaisi==NombreMystere;
            return Mystere;
    }

    int main ( int argc, char** argv )
    {
       
        printf("Saisissez un nombre");
        scanf("%ld",nombreSaisi);
        abc=compareNombre(nombreSaisi)
        if (Mystere=1)
        {
            printf("Vous avez trouvé");
        }
        else
        {
            printf("No")
        }
    }



    Ma fonction doit renvoyer une valeur de mystere égale a 0 ou a 1 en fonction du nombre saisi, puis le programme est censé afficher si le chiffre trouvé est le bon ou non.
    Quand je lance, le message Process terminated with status 1 (0 minutes, 0 seconds) s'affiche.
    Pouvez vous me dire ou est mon erreur ?
    Merci d'avance


    Edit Bon apres relecture j'ai vu le petit "abc" qui s'etait glissé la et que j'ai oublié d'enlever.
    Néanmoins je n'arrive pas a trouver ce qu'il faut mettre a la place de cet abc.
    (J'avais pensé au départ introduire une autre variable)
    • Partager sur Facebook
    • Partager sur Twitter
      26 juin 2006 à 23:15:50

      Bon déjà petite erreur du débutant dans ta condition if il faut mettre des '==' et pas un '=' pour tester Mystere. Deuxièmement à la fin de ta fonction main rajoute return 0;, je pense que c'est à cause de ça que ton programme retourne 1.

      Edit : Je viens de remarquer d'autres erreur il ne faut surtout pas oublié que le langage C est "case sensitive" c'est à dire que pour lui un nom de variable avec une majuscule et un même nom de variable sans, sont des variables différentes, il faut donc que tu fasses la correction dans ta fonction.
      • Partager sur Facebook
      • Partager sur Twitter
        26 juin 2006 à 23:24:07

        Voila le nouveau code qui a été un peu simplifié dans le but de cerner le probleme.
        #include <stdio.h>
        #include <stdlib.h>

        int compareNombre(long nombreSaisi)
        {
                long nombreMystere=10;
                int mystere=0;
                mystere=nombreSaisi==nombreMystere;
                return mystere;
        }

        int main ( int argc, char** argv )
        {
           
            printf("Saisissez un nombre");
            scanf("%ld",nombreSaisi);
            printf("%ld", compareNombre(nombreSaisi));
            return 0;
                   
        }

        Malheureusement ca ne marche toujours pas.
        • Partager sur Facebook
        • Partager sur Twitter
          26 juin 2006 à 23:41:44

          Autre erreur d'étourderie, dans le scanf tu DOIS rajouter le préfixe "&" à ta variable
          • Partager sur Facebook
          • Partager sur Twitter
            27 juin 2006 à 12:43:25

            J'ai réussi a effectuer une fonction qui génére un nombre aléatoire.
            Par contre je ne trouve toujours pas la fonction pour la comparaison des 2 nombres.
            #include <stdio.h>
            #include <stdlib.h>
            #include <time.h>

            // Fonction retournant un nombre aléatoire
            long nombreAleatoire ( long MIN, long MAX )
            {
                srand(time(NULL));
                return (rand() % (MAX - MIN + 1)) + MIN;
            }
            //Fonction qui compare le nombre mystere et le nombre saisi
            //long compareNombre (long nombre)
            //{
               // int mystere=0;
               // nombreMystere=nombreAleatoire(MIN,MAX);
               // mystere=nombre==nombreAleatoire
                //return mystere
            //}


            int main ( int argc, char** argv )
            {
                long nombreEntre=0;
                //long nombreMystere=0;
                    long MIN=0,MAX=0;
                    scanf("%ld",&MIN);
                    scanf("%ld",&MAX);
                    printf("%ld",nombreAleatoire(MIN,MAX));
                    //scanf("%ld",&nombreEntre);
                    //printf("%ld",mystere);


            }



            j'ai mis en commentaire l'ébauche de la fonction compareNombre, mais a vrai dire je ne sais pas trop par ou la commencer, j'ai voulu au départ qu'elle renvoie une variable booléenne, mais on ne peux pas savoir si le ciffre est supperieur ou inferieur ou égale avec cette méthode.
            J'aurais besoin d'un petit coup de main pour effectuer cette fonction.
            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              27 juin 2006 à 13:00:34

              Ben tu peux utiliser 0 si les deux nombres sont égaux, un nombre négatif pour inférieur et positif pour supérieur.

              Après val = nbr1 - nbr2, et ta fonction retourne val et si val = 0 alors nbr1 = nbr2, si val < 0 alors nbr1 < nbr2
              • Partager sur Facebook
              • Partager sur Twitter
                27 juin 2006 à 17:07:26

                Kalurar t'a oublier de generer un nombre aleatoire !Comment tu veux que ça marche alors ? o_O
                • Partager sur Facebook
                • Partager sur Twitter
                  28 juin 2006 à 11:40:07

                  Sur le premier script j'avais zapé le nombre aléatoire, j'avais donné une valeur défini au nombre Mystere.
                  Je ne voulais pas me focaliser sur cette fonction au départ mais bien sur le comparenombre
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 juin 2006 à 14:02:15

                    int Mystere=0
                    Mystere=NombreSaisi==NombreMystere;

                    int Mystere=0; // tu a soublié le ;

                    Et la deuxieme ligne, je doute que ce soit accepté.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 juin 2006 à 13:36:12

                      Euh je te conseille de bien relire les premiers chapitres ca a pas l'air d'être acquis.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Débutant dans les fonctions

                      × 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