Я пытаюсь создать простую программу, которая вызывает 2 функции.Первая функция принимает частично заполненный массив, проходит по нему и удаляет любые повторяющиеся значения.Когда значение удаляется из массива, оставшиеся числа перемещаются назад, чтобы заполнить пробел, т.е. когда функция завершается, все нулевые значения массива будут вместе в конце.
Вторая функция печатает обновленный массив.
Мой текущий код указан ниже.В настоящее время, когда я запускаю свой код, консоль показывает: 2 6 0 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460.Должно отображаться: 1 2 5 6, если он работал правильно.
Кроме того, я не уверен, как переместить оставшиеся элементы массива назад, чтобы нулевые значения были вместе в конце.
#include "pch.h"
#include <iostream>
using namespace std;
void deleteRepeats(int *arr, int arraySize, int& posUsed);
void printArray(int *arr, int arraySize);
int main()
{
int arr[10] = { 1, 2, 2, 5, 6, 1};
int posUsed = 6;
int arraySize = 10;
deleteRepeats(arr, arraySize, posUsed);
printArray(arr, arraySize);
return 0;
}
void deleteRepeats(int *arr, int arraySize, int& posUsed)
{
{
for (int i = 0; i < arraySize; i++)
{
for (int j = i; j < arraySize; j++)
{
if (arr[i] == arr[j])
{
for (int k = j; k < arraySize; k++)
{
arr[k] = arr[k + 1];
}
posUsed--;
}
else
j++;
}
}
}
}
void printArray(int *arr, int arraySize)
{
for (int i = 0; i < arraySize; i++)
{
cout << arr[i] << " ";
}
}