Как сделать так, чтобы можно вводить только целые цифры, без запятых? - C (СИ)
Формулировка задачи:
Задание: За номером дня месяца вывести на экран предыдущее число, если в месяце 31 день.
так то я написала.а вот что нужно добавить,чтобы можно было вводить только целое число,чтоб без всяких запятых?
я пошла сдавать,а учительница сказала ввести 3,5. оно показало,что вчера было 2 число.а ведь третьего с половиной дня не бывает....
Листинг программы
- int W;
- setlocale (0, "Rus");
- printf ("Ввести день месяца: ");
- scanf ("%d",&W);
- switch (W)
- {case 1:
- printf("Вчера было 30 число");
- break;
- case 2:
- printf("Вчера было 1 число");
- break;
- case 3:
- printf("Вчера было 2 число");
- break;
- case 4:
- printf("Вчера было 3 число");
- break;
- case 5:
- printf("Вчера было 4 число");
- break;
- case 6:
- printf("Вчера было 5 число");
- break;
- case 7:
- printf("Вчера было 6 число");
- break;
- case 8:
- printf("Вчера было 7 число");
- break;
- case 9:
- printf("Вчера было 8 число");
- break;
- case 10:
- printf("Вчера было 9 число");
- break;
- case 11:
- printf("Вчера было 10 число");
- break;
- case 12:
- printf("Вчера было 11 число");
- break;
- case 13:
- printf("Вчера было 12 число");
- break;
- case 14:
- printf("Вчера было 13 число");
- break;
- case 15:
- printf("Вчера было 14 число");
- break;
- case 16:
- printf("Вчера было 15 число");
- break;
- case 17:
- printf("Вчера было 16 число");
- break;
- case 18:
- printf("Вчера было 17 число");
- break;
- case 19:
- printf("Вчера было 18 число");
- break;
- case 20:
- printf("Вчера было 19 число");
- break;
- case 21:
- printf("Вчера было 20 число");
- break;
- case 22:
- printf("Вчера было 21 число");
- break;
- case 23:
- printf("Вчера было 22 число");
- break;
- case 24:
- printf("Вчера было 23 число");
- break;
- case 25:
- printf("Вчера было 24 число");
- break;
- case 26:
- printf("Вчера было 25 число");
- break;
- case 27:
- printf("Вчера было 26 число");
- break;
- case 28:
- printf("Вчера было 27 число");
- break;
- case 29:
- printf("Вчера было 28 число");
- break;
- case 30:
- printf("Вчера было 29 число");
- break;
- case 31:
- printf("Вчера было 30 число");
- break;
- default:
- printf ("Нужно ввести число от 1 до 31 включительно! ");
- }
- getch();
Решение задачи: «Как сделать так, чтобы можно вводить только целые цифры, без запятых?»
textual
Листинг программы
- #include<stdio.h>
- #include<ctype.h>
- #include<locale.h>
- int main()
- {
- int W;
- setlocale (0, "Rus");
- printf ("Ввести день месяца: ");
- scanf ("%d",&W);
- if(W>='0' && W<='9')
- switch (W)
- {case 1:
- printf("Вчера было 30 число");
- break;
- case 2:
- printf("Вчера было 1 число");
- break;
- case 3:
- printf("Вчера было 2 число");
- break;
- case 4:
- printf("Вчера было 3 число");
- break;
- case 5:
- printf("Вчера было 4 число");
- break;
- case 6:
- printf("Вчера было 5 число");
- break;
- case 7:
- printf("Вчера было 6 число");
- break;
- case 8:
- printf("Вчера было 7 число");
- break;
- case 9:
- printf("Вчера было 8 число");
- break;
- case 10:
- printf("Вчера было 9 число");
- break;
- case 11:
- printf("Вчера было 10 число");
- break;
- case 12:
- printf("Вчера было 11 число");
- break;
- case 13:
- printf("Вчера было 12 число");
- break;
- case 14:
- printf("Вчера было 13 число");
- break;
- case 15:
- printf("Вчера было 14 число");
- break;
- case 16:
- printf("Вчера было 15 число");
- break;
- case 17:
- printf("Вчера было 16 число");
- break;
- case 18:
- printf("Вчера было 17 число");
- break;
- case 19:
- printf("Вчера было 18 число");
- break;
- case 20:
- printf("Вчера было 19 число");
- break;
- case 21:
- printf("Вчера было 20 число");
- break;
- case 22:
- printf("Вчера было 21 число");
- break;
- case 23:
- printf("Вчера было 22 число");
- break;
- case 24:
- printf("Вчера было 23 число");
- break;
- case 25:
- printf("Вчера было 24 число");
- break;
- case 26:
- printf("Вчера было 25 число");
- break;
- case 27:
- printf("Вчера было 26 число");
- break;
- case 28:
- printf("Вчера было 27 число");
- break;
- case 29:
- printf("Вчера было 28 число");
- break;
- case 30:
- printf("Вчера было 29 число");
- break;
- case 31:
- printf("Вчера было 30 число");
- break;
- default:
- printf ("Нужно ввести число от 1 до 31 включительно! ");
- }
- else printf("Такого дня не существует!!!");
- getchar();
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
stdio.h
для работы с вводом/выводом данныхctype.h
для работы с преобразованием символовlocale.h
для работы с локалью (в данном случае для русского языка)
- Устанавливаем локаль на русскую:
setlocale (0,
Rus);
- Выводим запрос на ввод:
printf (
Ввести день месяца:);
- Считываем введенное значение в переменную W типа int:
scanf (
%d,&W);
- Проверяем, что введенное значение находится в диапазоне от '0' до '9':
if(W>='0' && W<='9')
- Осуществляем перебор всех возможных значений от 1 до 31:
- switch (W): выполняет блок кода в зависимости от значения переменной W
- case 1: выводит сообщение, что вчера было 30 число
- case 2: выводит сообщение, что вчера было 1 число
- case 3: выводит сообщение, что вчера было 2 число
- ...
- case 31: выводит сообщение, что вчера было 30 число
- default: выводит сообщение, что нужно ввести число от 1 до 31
- switch (W): выполняет блок кода в зависимости от значения переменной W
- Если значение W не соответствует ни одному из перечисленных выше, выводим сообщение об ошибке:
printf (
Такого дня не существует!!!);
- Получаем символ ввода (для избежания выведения сообщения об ошибке при нажатии Enter):
getchar();
- Завершаем программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д