Проверка корректности ввода числа в шестнадцатеричной системе счисления - 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, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д