Se connecter / S'enregistrer

Résolu Pouvez-vous m'aider à résoudre le problème de ma programmation ?

Solutions (5)
Tags :
  • Time
  • Programme
  • Programmation
|
bonjour,
je debute dans la programmation at j'ai un probleme avec mon premier programme au niveau de la boucle do....while . en effet a la fin du programme deux solutionS :1 pour rejouer ou 0 pour quitter mais je suis obligé de rentré deux fois 0 ou 1 pour que la boucle s'effectue ,de plus la boucle ne s'effectue pas correctement puisque le programme fait : scanf ("%d",&partiesolooudeux) avant printf ("Partie solo tapez 0 ou partie 2 joueurs tapez 1\n\n").....
merci pour votre aide

le programme:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main()
  6. {
  7. printf("Plus ou moins ?\n\n");
  8. int rejouez= 0;
  9. do
  10. {
  11. int nombreMystere = 0;
  12. int partiesolooudeux =0;
  13. printf ("Partie solo tapez 0 ou partie 2 joueurs tapez 1\n\n");
  14. scanf ("%d",&partiesolooudeux);
  15. if (partiesolooudeux)
  16. {
  17. printf("joueur 2 tournez vous, joueur 1 choississez un numero\n\n");
  18. scanf("%d",&nombreMystere);
  19. printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  20. }
  21. else
  22. {
  23. int max ,min = 1;
  24. int niveau;
  25. printf("chossissez un niveau entre le niveau 1,2 et 3 \n\n");
  26. printf("niveau 1 entre 0 et 100,niveau 2 entre 0 et 1000,niveau 3 entre 0 et 10000\n\n");
  27.  
  28. scanf("%d",&niveau);
  29. switch(niveau)
  30. {
  31. case 1 :
  32. max=100;
  33. break;
  34. case 2 :
  35. max=1000;
  36. break;
  37. case 3 :
  38. max=10000;
  39. break;
  40. default:
  41. printf("niveau non valide");
  42. break;
  43. }
  44.  
  45. srand(time(NULL));
  46. nombreMystere = (rand() % (max - min + 1)) + min;
  47. }
  48.  
  49. int NombreU =0;
  50. int compteur = 0;
  51. printf("un nombre a ete choisi tenter de le decouvrir\n\n");
  52. while(NombreU != nombreMystere)
  53. {
  54. scanf("%d",&NombreU);
  55. compteur++;
  56. if (NombreU > nombreMystere)
  57. printf("c'est moins\n\n");
  58. if (NombreU < nombreMystere)
  59. printf("c'est plus\n\n");
  60. if (NombreU == nombreMystere)
  61. printf("bravo vous avez trouve en %d essai\n\n",compteur);
  62. }
  63. printf ("Pour rejouer tapez 1\n\n");
  64. printf ("quittez tapez 0\n\n");
  65. scanf ("%d\n\n",&rejouez);
  66. } while (rejouez);
  67.  
  68. return 0;
  69. }



encore merci
  • Meuniers a édité ce message
Contenus similaires
Meilleure solution
partage
|
Salut,

C'est ton scanf qui pose probleme.

  1. scanf ("%d\n\n", &rejouez);


devient :

  1. scanf ("%d", &rejouez);
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par Vestipod.
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci beaucoup pour ta réponse la prochaine fois je relirais plus attentivement .Merci aussi au autre pour les conseils.
  • Commenter cette réponse |
Score
0
òh
òi
|
Et à changer de titre par un plus explicite également car on se doute que si tu es là, c'est parce que tu as besoin d'aide ;) 
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

J'ai ajouté les balises [code] pour ton message ainsi que de l'indentation.
A l'avenir, si tu veux avoir plus de chance d'avoir des réponses, pense à le faire, parce que sinon c'est illisible.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

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