Se connecter / S'enregistrer

Résolu Langage C : problème avec boucle

Solutions (6)
Tags :
  • Programmation
|
Bonjour, Alors j'ai un problème que je ne comprend pas trop en C, pourriez vous me dire le problème de ce code, car j'ai une boucle infinie de plus dans la boucle je ne peut pas ressaisir la valeur si je me suis tromper au premier... bref

  1. # include <stdio.h>
  2. # include <stdlib.h>
  3. int main () {
  4.  
  5. int n;
  6.  
  7. printf("Saisir un entier compris entre 0 et 20 : ");
  8. scanf("%d\n ", &n);
  9.  
  10.  
  11. while ((n < 0)||(n > 20)) {
  12. printf(" ...Attention un entier compris entre 0 et 20 : ");
  13. scanf("%d\n",&n);
  14. }
  15.  
  16. if(n >= 10)
  17. printf("Admis\n");
  18. else
  19. if(n >= 8)
  20. printf("Repêchage\n");
  21. else
  22. printf("Echec\n");
  23. }



Contenus similaires
Meilleure solution
partage
, Modérateur |
Salut,

Pas sûr qu'il faille mettre un \n dans le scanf


@allstar27: c'est correct ce qu'il a fait pour la condition. Parce que s'il a 12, ça entre dans le premier if, donc c'est Admis.
Si la personne a 9, ça ne rentre pas dans le 1er if, et mais ça rentre dans le else if, donc c'est Repêchage
Et ça serait la même chose en PHP

  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par debutant64.
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui c'est bon je sais pas pourquoi j'avais mis \n au scanf sa a tout arrangé, et puis le code je sais qu'il n'est pas très lisible c'est parce que je comprenais pas ce qui clochais alors j'ai tout changer j'ai mis des if partout car je croyais que je me tromper en faisant les autres bref bref j'ai bataillé pour de la merde ^^

Thanks sujet clos !

Merci de m'avoir aidé si j'ai d'autres problèmes et je pense que j'en aurais je saurais ou venir demander! en éspérant que les prochaines fois je bloque pas pour cela :)  .
  • Commenter cette réponse |
Score
0
òh
òi
|
Salut,

Je suis d'accord avec OmaR, je penses qu'il faut que tu enlèves le \n de ton scanf...

Car, tu fais pas sauter de ligne à une fonction qui n'écrit rien... ;) 

Et, personellement, je trouve ta façon d'écrire le code particulière, je trouve pas ça très lisible, enfin, pour l'insant, tes codes ne te concernent que toi donc si tu y arrives ;) 

Essais de donner des valeurs à tes variables dès le début aussi, ça change rien, mais bon, met 0 ou NULL celon ce que tu fais.
  • Commenter cette réponse |
Score
0
òh
òi
|
Si c'est 12 ça entre dans la première et la deuxième condition pour moi enfin soit pas grave tu as sûrement raison.

Édit: après plus longue reflection effectivement si c'est 12 le script s'arrêtera a le première condition de toute façon. Mille excuses :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,

Je connais rien en C donc je ne m'avance pas trop mais tu as une condition qui n'est pas logique (si je m'en reporte au php)

if (n >=10) et if (n >=8) si ton nombre est 12 par exemple il est plus grand que 10 et plus grand que 8... EPIC FAIL
  • 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