Создать третий массив из индексов повторяющихся элементов исходных массивов - C (СИ)

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

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

Привет всем! Помогите пожалуйста, уже все перепробовал, ни как не получается сделать прогу. Задать два массива целых чисел с помощью датчика случайных чисел. Создать третий массив из индексов повторяющихся элементов исходных массивов (индексы первого массива). На экран вывести как исходные данные, так и результирующий массив.

Решение задачи: «Создать третий массив из индексов повторяющихся элементов исходных массивов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
short check(unsigned int data,unsigned int *array,unsigned int size)
{
        unsigned int i, flag=0;
        for (i=0; i<size; i++)
                if ( array[i] == data )
                        flag++;
        return flag;
}
int main(int argc, char* argv[])
{
        int *array1;
        unsigned int  n=0, i, j, k, *array2;
        int item;
        srand(time(NULL));
        printf("Input number of elements: ");
        scanf("%i", &k);
        array1 = (int*) malloc(4*k);
        array2 = (unsigned int*) malloc(4*k);
        printf("Your random array:\n");
        for(i=0;i<k;i++)
        {
                item = rand() % 20 - 10;
                printf("%d ", item);
                array1[i] = item;
        } printf("\n");
        for(i=0; i<k-1; i++)
                for(j=i+1; j<k; j++)
                        if (array1[i] == array1[j])
                        {
                                if ( !check(i+1, array2, n) )
                                        array2[n++] = i+1;
                                if ( !check(j+1, array2, n) )
                                        array2[n++] = j+1;
                        }
        printf("Your new array:\n");
        for(i=0;i<n;i++)
                printf("%i ", array2[i]);
        printf("\n");
        system("pause");
        return 0;
}

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

В этом коде создается массив из индексов повторяющихся элементов исходных массивов. Вот список действий, которые выполняются в коде:

  1. Функция check принимает три аргумента: data (данные), array (массив) и size (размер массива). Она проверяет, сколько раз встречается data в массиве array.
  2. В функции main создается массив array1 из 40 элементов, инициализированных случайными числами от -10 до 10.
  3. Создается массив array2 из 40 элементов, инициализированных нулями. Он будет использоваться для хранения индексов повторяющихся элементов.
  4. Выводится сообщение Input number of elements: и считывается количество элементов, которое пользователь хочет добавить в массив.
  5. Массив array1 выводится на экран.
  6. Для каждого элемента array1 проверяется, сколько раз он встречается в массиве. Если он встречается более одного раза, его индекс добавляется в array2.
  7. Выводится сообщение Your new array: и выводятся все индексы, которые были добавлены в array2.
  8. Программа ожидает нажатия клавиши, чтобы пользователь мог увидеть результат. Этот код поможет вам создать третий массив из индексов повторяющихся элементов исходных массивов.

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

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