Определить, есть ли в числе повторяющиеся цифры - C (СИ)
Формулировка задачи:
/*Выводит повторяющиеся цифры в числе*/ #include <stdio.h> #include <locale.h> int main () { int digit_seen[10]={0}; int digit; long n; setlocale(LC_ALL,"Rus"); printf("Введите число: "); scanf("%ld", &n); while (n>0){ digit=n%10; if(digit_seen[digit]) break; digit_seen[digit]=1; n/=10; } if(n>0) printf("Есть повторяющиеся цифры: \n"); else printf("Повторяющихся цифр нет\n"); return 0; }
Решение задачи: «Определить, есть ли в числе повторяющиеся цифры»
textual
Листинг программы
/*Выводит повторяющиеся цифры в числе*/ #include <stdio.h> #include <locale.h> #include <string.h> int main () { int digit_seen[10]; memset(digit_seen, 0, sizeof(digit_seen)); int find = 0; int digit; long n; setlocale(LC_ALL,"Rus"); printf("Введите число: "); scanf("%ld", &n); while (n>0) { digit=n%10; if (++digit_seen[digit] > 1) { find = 1; } n/=10; } if(find) { printf("Есть повторяющиеся цифры: "); for (digit = 0; digit < 10; ++digit) { if (digit_seen[digit] > 1) { printf("%d", digit); } } } else printf("Повторяющихся цифр нет\n"); return 0; }
Объяснение кода листинга программы
В данном коде осуществляется проверка наличия повторяющихся цифр в числе, введенном пользователем.
- Создается массив digit_seen, который будет отслеживать количество вхождений каждой цифры от 0 до 9. Изначально все элементы массива устанавливаются равными 0.
- Устанавливается значение переменной find равным 0, которая будет указывать на наличие повторяющихся цифр.
- Вводится число, которое пользователь должен ввести. Числ вводится в переменную n типа long, что позволяет вводить числа с плавающей точкой.
- Происходит обработка введенного числа. Для этого число делится на 10 (что позволяет получить последнюю цифру) и к остатку от деления прибавляется единица. Таким образом, в переменную digit записывается очередная цифра числа.
- Значение переменной digit используется для увеличения значения соответствующего элемента массива digit_seen. Если значение элемента становится больше 1, то это означает, что данная цифра повторяется в числе более одного раза, и значение переменной find устанавливается равным 1.
- После обработки всех цифр числа, программа проверяет значение переменной find. Если оно равно 1, то выводится сообщение о наличии повторяющихся цифр, а затем выводятся все повторяющиеся цифры.
- Если значение переменной find равно 0, то выводится сообщение об отсутствии повторяющихся цифр.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д