Проверка того что каждый символ во входной строке является цифрой - C (СИ)

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

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

int a;
printf("Vvedite chislo: ");
scanf("%d",&a);
while(a>10 || a<0)
{
printf("\nNepravilnoye chislo!");
printf("\nVvedite chislo: ");
scanf("%d",&a);
}
Необходимо, чтобы программа проверяла что число лежит в диапазоне от 0 до 10 (это я сделал) и если вводишь букву или что-то еще выводила сообщение об ошибке и заново проосила ввести число, а я когда ввожу букву у меня программа циклится (я использовал isdigit). Мне сказали что-то про строки. Я пробовал менять форматы но до конца довести не могу ничего. Прошу помочь кодом, потому что прочитал много чего, а именно этой решенной задачи не нашел или там написано не на СИ. Спасибо.

Решение задачи: «Проверка того что каждый символ во входной строке является цифрой»

textual
Листинг программы
char a;
   printf("Vvedite cifru: ");
   while ((c=getc(stdin))<48 || (c=getc(stdin))>57 )
   {
      printf("BBedite chifru!!!\n");
   }

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

В данном коде происходит следующая последовательность действий:

  1. Объявляется переменная типа char с именем a.
  2. Выводится сообщение Vvedite cifru: с помощью функции printf, которая принимает в качестве аргумента строку.
  3. Запускается цикл while, который будет выполняться до тех пор, пока не будет введено число.
  4. Внутри цикла происходит проверка каждого введенного символа на принадлежность к диапазону от 48 до 57 (это цифры от 0 до 9).
  5. Если символ не является цифрой, то с помощью функции printf выводится сообщение BBedite chifru!!! и цикл продолжается.
  6. Если введенный символ является цифрой, то цикл прерывается и программа продолжает работу со следующим действием. Список действий:
  7. Объявление переменной a - 1
  8. Вывод сообщения Vvedite cifru: - 2
  9. Проверка введенного символа на принадлежность к диапазону от 48 до 57 - 3
  10. Вывод сообщения BBedite chifru!!! - 4
  11. Продолжение цикла while - 5
  12. Прерывание цикла while при вводе цифры - 6

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


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

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

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