Определить, есть ли в числе повторяющиеся цифры - 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;
}

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

В данном коде осуществляется проверка наличия повторяющихся цифр в числе, введенном пользователем.

  1. Создается массив digit_seen, который будет отслеживать количество вхождений каждой цифры от 0 до 9. Изначально все элементы массива устанавливаются равными 0.
  2. Устанавливается значение переменной find равным 0, которая будет указывать на наличие повторяющихся цифр.
  3. Вводится число, которое пользователь должен ввести. Числ вводится в переменную n типа long, что позволяет вводить числа с плавающей точкой.
  4. Происходит обработка введенного числа. Для этого число делится на 10 (что позволяет получить последнюю цифру) и к остатку от деления прибавляется единица. Таким образом, в переменную digit записывается очередная цифра числа.
  5. Значение переменной digit используется для увеличения значения соответствующего элемента массива digit_seen. Если значение элемента становится больше 1, то это означает, что данная цифра повторяется в числе более одного раза, и значение переменной find устанавливается равным 1.
  6. После обработки всех цифр числа, программа проверяет значение переменной find. Если оно равно 1, то выводится сообщение о наличии повторяющихся цифр, а затем выводятся все повторяющиеся цифры.
  7. Если значение переменной find равно 0, то выводится сообщение об отсутствии повторяющихся цифр.

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


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

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

13   голосов , оценка 3.692 из 5
Похожие ответы