Контроль ввода цифр - C (СИ)
Формулировка задачи:
Как сделать защиту от дурака.
Дан массив в него нужно ввести цифры для заполнения, но если ты вводишь букву то должно вывести "Ошибка"/
Решение задачи: «Контроль ввода цифр»
textual
Листинг программы
#include <stdio.h>
#define N 100
int main (void) {
char c;
char n[N];
int i;
i = 0;
while ((c = getchar()) != '\n' && i < N-1){
if (c >= 48 && c <= 57) {
n[i] = c;
i++;
} else{
printf("Oshibka!");break;}
}
n[i] = '\0';
printf("%s\n", n);
return(0);}
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
cобъявлена какchar, используется для получения ввода пользователя.nобъявлена как массив символов (char[]), используется для хранения введенных цифр.iобъявлена какint, используется для отслеживания количества введенных цифр.
- В цикле
whileпроисходит следующее:- Получается ввод пользователя с помощью функции
getchar(). - Если введенный символ является цифрой (в диапазоне от 0 до 9), он добавляется в массив
nи увеличивается счетчикi. - Если введенный символ не является цифрой, выводится сообщение об ошибке
Oshibka!и цикл прерывается.
- Получается ввод пользователя с помощью функции
- После окончания цикла, в массиве
nсодержится строка, состоящая из введенных цифр. Эта строка выводится на экран с помощью функцииprintf(). - В конце программы возвращается 0, что означает успешное выполнение программы.