Привет всем и спасибо за ваше время.
Для упражнения я хотел написать программу, которая копирует все элементы из массива в другой массив, но без дубликатов. Единственное условие - я не могу изменить исходный массив - поэтому не сортирую.
Я попытался создать функцию, которая проверяет, найден ли текущий элемент array1 в массиве, в который мы копируем (array2). Если нет, то мы копируем элемент во второй массив и увеличиваем размер на один .
Однако, это не работает:
Если у меня
int array1[15] = {3,2,4,7,9,1,4,6,7,0,1,2,3,4,5};
int array2[15];
array2
должно содержать следующие числа: 3,2,4,7,9,1,6,0,5
Но мой вывод выглядит следующим образом: 3,2,4,7,9,1,6
Вот код:
#include <stdio.h>
#include <stdlib.h>
int already_exists(int array2[], int size_arr2, int element)
{
int i;
for(i=0; i<size_arr2; i++)
{
if(array2[i] == element)
return 1;
}
return 0;
}
int main()
{
int array1[15] = {3,2,4,7,9,1,4,6,7,0,1,2,3,4,5};
int array2[15];
int i;
int size_arr2=0;
for(i=0; i<9; i++)
{
int element = array1[i];
if(already_exists(array2, size_arr2, element) == 1)
continue;
else
{
array2[size_arr2] = element;
size_arr2++;
}
}
for(i=0; i<size_arr2; i++)
{
printf("%d, ", array2[i]);
}
return 0;
}