Проверка корректности ввода числа в шестнадцатеричной системе счисления - C (СИ)
Формулировка задачи:
Добрый день!
Мне нужно проверить правильность введенного числа в шестнадцатеричной системе счисления. Т.е. программа должна выдавать ошибку, если мы введем, допустим, символы "vtyu8h"
если я ввожу просто '1' или 'A', то программа работает верно, а если '48', например, то нет
подскажите, что исправить
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <windows.h> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int i, k, f=1; char c[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F'}; char d[100]; printf("Введите число\n"); gets(d); for (i=0; i<strlen(d) - 1; i++) for (k=0; k<=11; k++) if (d[i]==c[k]) { f++; } if (f==i) printf("верно\n"); else printf("ошибка\n"); return 0; }
Решение задачи: «Проверка корректности ввода числа в шестнадцатеричной системе счисления»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> #include <windows.h> int main() { char d[100]; SetConsoleCP(1251); SetConsoleOutputCP(1251); printf("Введите число\n"); gets(d); if (*d && strspn(d,"0123456789ABCDEF")==strlen(d)) printf("верно\n"); else printf("ошибка\n"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с консолью, строками и числами
- Объявление переменной типа char с именем d и размером 100, которая будет использоваться для ввода числа
- Установка кодировки консоли на 1251 с помощью функции SetConsoleCP
- Установка кодировки вывода консоли на 1251 с помощью функции SetConsoleOutputCP
- Вывод сообщения с просьбой ввести число
- Ввод числа с помощью функции gets(d)
- Проверка корректности введенного числа с помощью условного оператора if
- Проверка условия: если введенное число не пустое и состоит только из цифр и букв от A до F, то выводится сообщение
верно
- В противном случае выводится сообщение
ошибка
- Возврат значения 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д