Создать третий массив из индексов повторяющихся элементов исходных массивов - 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; }
Объяснение кода листинга программы
В этом коде создается массив из индексов повторяющихся элементов исходных массивов. Вот список действий, которые выполняются в коде:
- Функция
check
принимает три аргумента:data
(данные),array
(массив) иsize
(размер массива). Она проверяет, сколько раз встречаетсяdata
в массивеarray
. - В функции
main
создается массивarray1
из 40 элементов, инициализированных случайными числами от -10 до 10. - Создается массив
array2
из 40 элементов, инициализированных нулями. Он будет использоваться для хранения индексов повторяющихся элементов. - Выводится сообщение
Input number of elements:
и считывается количество элементов, которое пользователь хочет добавить в массив. - Массив
array1
выводится на экран. - Для каждого элемента
array1
проверяется, сколько раз он встречается в массиве. Если он встречается более одного раза, его индекс добавляется вarray2
. - Выводится сообщение
Your new array:
и выводятся все индексы, которые были добавлены вarray2
. - Программа ожидает нажатия клавиши, чтобы пользователь мог увидеть результат. Этот код поможет вам создать третий массив из индексов повторяющихся элементов исходных массивов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д