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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !
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!