@Sazoks

Удалить все повторяющиеся элементы из массива?

Всем привет. Мне 16, 4 месяца изучаю С++ и наткнулся на такую казалось бы тривиальную задачку. Решил я ее за сутки, кое-как) Задача: Дан целочисленный массив. Необходимо просто удалить все повторяющиеся элементы. НО С УСЛОВИЕМ! НЕЛЬЗЯ использовать решения из коробки языка! Все это время я занимался процедурным программированием ну и 2 недельки ООП изучаю. В общем прошу оценить и сказать на сколько все плохо) Если не трудно, предложите свои варианты решений.
Заранее всем спасибо и добра вам!
5c570c64d50c2546941627.jpeg5c570c6d2e4a7996922472.jpeg5c570c74b0ec3830260963.jpeg

Вот рез. работы:
5c570c8ad8119184438673.jpeg5c570c903224c251009632.jpeg
  • Вопрос задан
  • 5029 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sddvxd
Советую познакомиться с новыми стандартами языка и стандартной библиотекой
bool inArray(int* arr, int need, int count){
    for(int i = 0; i < count; ++i)
        if(arr[i] == need)
            return true;
return false;
}
int* uniq(int* arr, int size, int& newSize){
    int* localArr = new int[size]{0};
    for(int i = 0; i < size; ++i){
        if(inArray(localArr - newSize, arr[i], size))
            continue;
        ++newSize;
        *localArr++ = arr[i];
    }
return localArr - newSize;
}

int main(){
    int arr[10] = {1,2,3,4,2,4,5,6,7,4};
    int newSize = 0;
    int* newArr = uniq(arr, sizeof(arr)/sizeof(int), newSize);
    for(int i = 0; i < newSize; ++i)
        cout << newArr[i] << "\n";
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы