Votre question

besoin d'aide pour les fonction [C]

Tags :
  • Time
  • Programmation
Dernière réponse : dans Programmation
4 Janvier 2008 23:26:10

Salut

je suis en train de lire les cours de Mateo (site du zéro) pour le c, je suis arrivé à la fin des fonctions et je pensais avoir assez bien compris jusqu'a sont "tp".

il donne ce code la
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main ( int argc, char** argv )
  6. {
  7. long nombreMystere = 0, nombreEntre = 0;
  8. const long MAX = 100, MIN = 1;
  9.  
  10. // Génération du nombre aléatoire
  11. nombreMystere = genereNombre(MIN, MAX);
  12.  
  13. /* La boucle du programme. Elle se répète tant que l'utilisateur
  14. n'a pas trouvé le nombre mystère */
  15.  
  16. do
  17. {
  18. // On demande le nombre
  19. printf("Quel est le nombre ? ");
  20. scanf("%ld", &nombreEntre);
  21.  
  22. // On compare le nombre entré avec le nombre mystère
  23. compareNombres(nombreEntre, nombreMystere);
  24.  
  25. } while (nombreEntre != nombreMystere);
  26.  
  27.  
  28. system("PAUSE");
  29. }


et je dois à l'aide de 2 fonctions arriver à générer un nombre aléatoire (il donne le bout de code pour ca:
  1. srand(time(NULL));
  2. (rand() % (MAX - MIN + 1)) + MIN;
), le "joueur" doit saisir un nombre entre 1 et 100 et ca marque si le nombre du joueur est plus grand ou plus petit que celui du rand, quand le joueur à trouver le bon nombre c'est la fin ^^.

Maintenant voila ce que j'ai fait
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. long genereNombre(long MIN, long MAX)
  5. {
  6.  
  7. srand(time(NULL));
  8. return (rand() % (MAX - MIN + 1)) + MIN;
  9.  
  10. }
  11.  
  12.  
  13. void compareNombres(long nombreEntre2, long nombreMystere2)
  14. {
  15. if (nombreEntre2 < nombreMystere2)
  16. {
  17. printf("Trop petit");
  18. }
  19. if (nombreEntre2 > nombreMystere2)
  20. {
  21. printf("Trop grand");
  22. }
  23. if (nombreEntre2 == nombreMystere2)
  24. {
  25. printf("Bravo");
  26. }
  27. }
  28.  
  29.  
  30. int main ( int argc, char** argv )
  31. {
  32. long nombreMystere = 0, nombreEntre = 0, compareNombres = 0;
  33. const long MAX = 100, MIN = 1;
  34.  
  35. // Génération du nombre aléatoire
  36. nombreMystere = genereNombre(MIN, MAX);
  37.  
  38. /* La boucle du programme. Elle se répète tant que l'utilisateur
  39. n'a pas trouvé le nombre mystère */
  40.  
  41. do
  42. {
  43. // On demande le nombre
  44. printf("Quel est le nombre ? ");
  45. scanf("%ld", &nombreEntre);
  46.  
  47. // On compare le nombre entré avec le nombre mystère
  48. compareNombres(nombreEntre, nombreMystere);
  49.  
  50. } while (nombreEntre != nombreMystere);
  51.  
  52.  
  53. system("PAUSE");
  54. }


mais j'ai un problème le compilateur me dit que je ne peux pas avoir une fonction dans "main", pourquoi me dit il ca. SVP je sais que ca code n'est pas forcément bon et qu'il pourrait etre revu et corrigé mais j'aimerez me corriger moi meme. J'aurais juste besoin d'aide pour savoir pourquoi le compilateur me dit ca et comment résoudre ce problème

Merci

Autres pages sur : besoin aide fonction

Anonyme
5 Janvier 2008 13:11:25

Salut
copie colle ce que dis le compilateur exactement

edit, tu as déclaré compareNombres dans le main comme un long, or tu as une fonction de même nom et tu l'appelles dans le main ...
donc efface cette déclaration compareNombres = 0;
5 Janvier 2008 14:17:28

Ca marche, merci :ange: 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS