Probleme simple de boucle infinie.
Bonjour à tous, je debute en C (2 jour que je "programme"). J'ai un probleme sur un exo tout simple qui me demande de d'afficher une table de multiplication d'un entier compris entre 0 et 20 avec un test sur l'entier en question. Je suis sous windows et j'utilise Dev-C++, voila le programme que j'ai ecrit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <stdio.h>
int main(void)
{
int N, i=0, produit, Borne_Inf=0, Borne_Sup=20;
do {
printf ("Tapez l'entier compris entre 0 et 20 dont vous voulez la table de multiplication \n");
scanf("%d",&N); // pas de test pour le caractere entier scanf(%d) prend seulement la partie entiere
if (N < Borne_Inf || N > Borne_Sup)
{printf ("L'entier choisit n'est pas compris entre 0 et 20!\n");
}
}
while(N < Borne_Inf || N > Borne_Sup);
for (i=Borne_Inf; i<=Borne_Sup; i++)
{
produit = i * N;
printf ("%d x %d = %d\n", N, i, produit);
}
system("PAUSE");
return 0;
} |
Quand je compile pas de soucis et quand je l'éxecute avec un entier quelqu'il soit ou un réel lui entre 0 et 20 pas de soucis non plus mais si je lui donnes un réel non compris dans [0;20] il boucle a l'infini :evilred:!
Je ne comprend pas pourquoi...
Je suis allez voir les tutoriel de devellopez à propos de scanf ou de Do while et je n'arrive pas a voir l'erreur.
Merci d'avance pour vos reponse à mes questions!