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

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

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

Добрый день! Мне нужно проверить правильность введенного числа в шестнадцатеричной системе счисления. Т.е. программа должна выдавать ошибку, если мы введем, допустим, символы "vtyu8h" если я ввожу просто '1' или 'A', то программа работает верно, а если '48', например, то нет подскажите, что исправить
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <windows.h>
  5. int main()
  6. {
  7. SetConsoleCP(1251);
  8. SetConsoleOutputCP(1251);
  9. int i, k, f=1;
  10. char c[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F'};
  11. char d[100];
  12. printf("Введите число\n");
  13. gets(d);
  14.  
  15. for (i=0; i<strlen(d) - 1; i++)
  16. for (k=0; k<=11; k++)
  17. if (d[i]==c[k])
  18. {
  19. f++;
  20. }
  21. if (f==i)
  22. printf("верно\n");
  23. else
  24. printf("ошибка\n");
  25. return 0;
  26. }

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <string.h>
  5. #include <windows.h>
  6.  
  7. int main()
  8. {
  9.     char d[100];
  10.     SetConsoleCP(1251);
  11.     SetConsoleOutputCP(1251);
  12.     printf("Введите число\n");
  13.     gets(d);
  14.  
  15.     if (*d && strspn(d,"0123456789ABCDEF")==strlen(d))
  16.       printf("верно\n");
  17.     else
  18.       printf("ошибка\n");
  19.     return 0;
  20. }

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

  1. Подключение необходимых библиотек для работы с консолью, строками и числами
  2. Объявление переменной типа char с именем d и размером 100, которая будет использоваться для ввода числа
  3. Установка кодировки консоли на 1251 с помощью функции SetConsoleCP
  4. Установка кодировки вывода консоли на 1251 с помощью функции SetConsoleOutputCP
  5. Вывод сообщения с просьбой ввести число
  6. Ввод числа с помощью функции gets(d)
  7. Проверка корректности введенного числа с помощью условного оператора if
  8. Проверка условия: если введенное число не пустое и состоит только из цифр и букв от A до F, то выводится сообщение верно
  9. В противном случае выводится сообщение ошибка
  10. Возврат значения 0, что означает успешный конец работы программы

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


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

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

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы