Петля (как переделать програму?) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Програма должна то количество «*», которое задает пользователь, но в пределах от 1 до 20. Если пользователь вводит 0, пронрамма останавливаеться и выдает сообщение «Thanks and bye!» Если пользователь вводит значение больше 20 или меньше 0 программа должна выдать сообщение «invalid input!» и запросить следующий ввод. Проблема в том, что не могу выполнить последнее условие без прерывания петли. Подскажите, пожалуйста, как это реализовать. Спасибо.
#include<stdio.h>
int main(void)
 
{
    int i=0;
    int asterisks;
 
    printf("Enter a number between 1 and 20 ( Enter 0 to end) :");
    scanf("%d", &asterisks);
 
    for(i=0; i<asterisks; i++)
    printf("%c ", '*');
 
       while(asterisks!=0)
   {
          printf("\nEnter a number between 1 and 20 ( Enter 0 to end) :");
          scanf("%d", &asterisks);
 
          /* if(asterisks>=21 || asterisks<0)
          printf("invalid input!");*/
 
          for(i=0; i<asterisks; i++)
          printf("%c ", '*');
   }
if(asterisks==0)
    printf("\nThanks and bye!");
 
return 0;
}

Решение задачи: «Петля (как переделать програму?)»

textual
Листинг программы
while(1 != scanf("%d", &asterisks) || asterisks < 1 || asterisks > 20){
    puts("invalid input!Try again");
    while(getchar() != '\n');
}

Объяснение кода листинга программы

  1. Происходит бесконечный цикл while(1), который завершается только при выполнении условия внутри скобок.
  2. Условие внутри скобок требует ввода целого числа от 1 до 20 и проверки его на корректность.
  3. Если условие не выполняется, то выводится сообщение об ошибке и происходит пропуск символа новой строки с помощью функции getchar().
  4. Если условие выполняется, то переменная asterisks получает значение введенного числа.
  5. Введенное число проверяется на выход за пределы от 1 до 20. Если число выходит за эти пределы, то программа возвращается к шагу 2.
  6. Если число в пределах от 1 до 20, то программа завершается и выводит сообщение об успешном вводе.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы