indiquez-le lorsqu’une valeur non valide est entrée, l’utilisateur doit réessayer une nouvelle valeur en C

Pour mon affectation matérielle, je dois créer un programme qui génère un sortingangle basé sur un astérisque qui dépend des entrées de l’utilisateur. Mon programme a fonctionné aussi loin que lorsque l’utilisateur saisit un entier, le sortingangle correct est généré, mais le problème qui se pose concerne l’entrée d’une valeur non valide. J’ai regardé sur les forums et je n’ai pas pu trouver une question similaire.

#include  int main() { int lines, a, b; //prompt user to input integer printf("Input a value from 1 to 15: "); scanf("%d", &lines); //Check if inputed value is valid if(lines >= 1 && lines <= 15) { /*create triangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } } else { printf("not valid");/* repeat code in this else statement, maybe */ } system("pause"); } 

 #include  int main() { int lines, a, b; //prompt user to input integer do{ printf("Input a value from 1 to 15: "); scanf("%d", &lines); //Check if inputed value is valid if(lines < 1 || lines > 15) { printf("Error: Please Enter a Valid number!!!\n"); continue; } /*create sortingangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } }while(1); system("pause"); } 

Si vous voulez arrêter le programme si l'utilisateur entre une valeur valide (je veux dire 1-15), placez ces boucles for dans bloc else et ajoutez une instruction break.

 do{ printf("Input a value from 1 to 15: "); scanf("%d", &lines); //Check if inputed value is valid if(lines < 1 || lines > 15) { printf("Error: Please Enter a Valid number!!!\n"); continue; } else{ /*create sortingangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } break; } }while(1); system("pause"); } 

Vous pouvez utiliser la boucle do .. while while pour demander à l’utilisateur une entrée valide. Code

 int main() { int lines, a, b; do { //prompt user to input integer printf("Input a value from 1 to 15: "); scanf("%d", &lines); //Check if inputed value is valid if(lines >= 1 && lines <= 15) { /*create triangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } break; //break while loop after valid input } else { printf("not valid");/* repeat code in this else statement, maybe */ } }while(1); system("pause"); }