сделайте это так, когда вводится недопустимое значение, пользователь должен повторить новое значение в C

Для моего назначения HW мне нужно создать программу, которая выводит треугольник на основе звездочки, который зависит от ввода пользователя. Я получил свою программу для работы до тех пор, пока пользователь вводит целое число, выводящий правильный треугольник, но моя проблема заключается в том, когда вводится недопустимое значение, как я могу сделать это, чтобы пользователь повторно попытался представить значение? Я смотрел на форумах, и мне не удалось найти аналогичный вопрос.

#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 triangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } }while(1); 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 triangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } }while(1); system("pause"); } 

Если вы хотите остановить программу, если пользователь вводит допустимое значение (я имею в виду 1-15), то помещаем их для циклов в блок else и добавляем оператор 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 triangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } break; } }while(1); system("pause"); } в 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 triangle based on inputed value */ for(a = 1; a <= lines; a++) { for(b=1; b<= a; b++) { printf("*"); } printf("\n"); } break; } }while(1); system("pause"); } 

Вы можете использовать do .. while loop, чтобы спросить пользователя о допустимом вводе. Код

 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"); } в 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"); }