Определить, содержит ли заданная строка двоичное, восьмеричное, десятичное или шестнадцатеричное число - C (СИ)
Формулировка задачи:
Решение задачи: «Определить, содержит ли заданная строка двоичное, восьмеричное, десятичное или шестнадцатеричное число»
#include <stdio.h> #include <ctype.h> int main() { char s[100]; gets(s); int type = 0; for (char *p = s; *p; p++) { int t; switch (tolower(*p)) { case '0': case '1': t = 2; break; case '2': case '3': case '4': case '5': case '6': case '7': t = 8; break; case '8': case '9': t = 10; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': t = 16; break; default: t = 666; } if (t > type) type = t; } switch (type) { case 2: puts("Base: 2 or 8 or 10 or 16"); break; case 8: puts("Base: 8 or 10 or 16"); break; case 10: puts("Base: 10 or 16"); break; case 16: puts("Base: 16"); break; default: puts("Wrong number"); break; } return 0; }
Объяснение кода листинга программы
В этом коде определена функция main(), которая получает строку от пользователя с помощью функции gets() и сохраняет её в массиве s. Затем инициализируется переменная type значением 0. Далее, в цикле for перебираются все символы строки. Для каждого символа проверяется его значение в нижнем регистре с помощью функции tolower(). В зависимости от значения символа, переменной t присваивается соответствующее значение: 2 для '0' и '1', 8 для '2' - '7', 10 для '8' и '9', 16 для 'a' - 'f'. Если значение переменной t больше значения переменной type, то type присваивается значение t. После цикла, в зависимости от значения переменной type, выводится соответствующее сообщение с помощью функции puts(). В конце функции main() возвращается 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д