Как найти одинаковые элементы в массиве? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Ребят, подскажите пожалуйста, как можно выписать все повторяющиеся элементы из массива? Сколько способов попробовал и все работали не корректно, уже не знаю в чем проблема и в голову ничего адекватного не приходит. Дан массив, к примеру размером в 100 элементов, он заполняется с помощью рандома. Как из него извлечь одинаковые элементы и записать в динамический массив. Допустим есть массив First и в нем есть следующие числа: 83 62 11 29 29 13 5 24 5 87 32 87 А результат динамического массива будет: 29 5 87 Как это реализовать? Помогите пожалуйста!

Решение задачи: «Как найти одинаковые элементы в массиве?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define N 100
#define A 0
#define B 99
#define D (B - A + 1)
 
int main(void)
{
    srand(time(NULL));
    int arr[N];
    int i;
    for (i = 0; i < N; ++i) {
        arr[i] = rand() % D + A;
        printf("%d%c", arr[i], i == N - 1 ? '\n' : ' ');
    }
    int cnt[D];
    for (i = 0; i < D; ++i) {
        cnt[i] = 0;
    }
    for (i = 0; i < N; ++i) {
        cnt[arr[i] - A]++;
    }
    int first = 1;
    for (i = 0; i < N; ++i) {
        if (cnt[arr[i] - A] > 1) {
            printf(first ? "%d" : " %d", arr[i]);
            cnt[arr[i] - A] = 0;
            first = 0;
        }
    }
    putchar('\n');
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы
  2. Определяем параметры N, A, B, D
  3. Инициализируем генератор случайных чисел
  4. Создаем массив arr
  5. Заполняем массив arr случайными числами в диапазоне от A до B
  6. Выводим массив arr на экран
  7. Создаем массив cnt
  8. Инициализируем массив cnt нулями
  9. Проходим по массиву arr и увеличиваем соответствующий элемент массива cnt
  10. Создаем переменную first для отслеживания первой повторяющейся цифры
  11. Проходим по массиву arr повторно и выводим на экран повторяющиеся элементы
  12. Возвращаем 0, завершая работу программы

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


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

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

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