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