Определить имеются ли в заданных числах одинаковые цифры, и сколько - C (СИ)
Формулировка задачи:
Ввести два числа, каждое < 6500. Определить имеются ли в них одинаковые цифры и сколько. Предусмотреть повторение программы.Спасибо.
Решение задачи: «Определить имеются ли в заданных числах одинаковые цифры, и сколько»
textual
Листинг программы
#include <stdio.h> #define MAX_VALUE 6500 #define BUF_SIZE 5 int HasEqual(const char *s1, const char *s2) { const char *p1, *p2; for (p1 = s1; *p1; ++p1) for (p2 = s2; *p2; ++p2) if (*p1 == *p2) return 1; return 0; } int main(void) { int x, y; char buf1[BUF_SIZE], buf2[BUF_SIZE]; do { printf("Enter two digits, (< %d for exit)\nx=", MAX_VALUE); scanf("%d", &x); printf("y="); scanf("%d", &y); if (x < MAX_VALUE && y < MAX_VALUE) { sprintf(buf1, "%d", x); sprintf(buf2, "%d", y); printf(HasEqual(buf1, buf2) ? "True\n" : "False\n"); } } while (x < MAX_VALUE && y < MAX_VALUE); return 0; }
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для использования функций ввода-вывода.
- Определяем две константы : MAX_VALUE (максимальное значение чисел для проверки на равенство цифр) и BUF_SIZE (размер буфера для хранения чисел).
- Функция HasEqual принимает два указателя на строки (константные указатели) и проверяет есть ли в них одинаковые символы.
- В функции main считываем два числа с помощью функции scanf в переменные x и y.
- Если числа в пределах допустимого диапазона (меньше MAX_VALUE), то продолжаем, иначе выходим из цикла.
- Функцией sprintf преобразуем числа в строки и сохраняем их в буферы buf1 и buf2.
- Вызываем функцию HasEqual с буферами в качестве аргументов.
- Выводим результат на экран с помощью функции printf.
- Если число введено некорректно (например, буква), то программа выдаст ошибку и запросит повторный ввод.
- Если числа не содержат одинаковых цифр, то программа выведет False.
- Если числа содержат одинаковые цифры, то программа выведет True.
- После вывода результата программа снова запрашивает два числа до тех пор, пока не будет введено некорректное значение или не будет достигнуто максимальное значение чисел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д