Задать вопрос
@Sazoks

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

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

Вот рез. работы:
5c570c8ad8119184438673.jpeg5c570c903224c251009632.jpeg
  • Вопрос задан
  • 5278 просмотров
Подписаться 1 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
  • Нетология
    Разработчик на C++: Профессия + специализация + нейросети
    12 месяцев
    Далее
  • Skillbox
    Разработчик на C++
    7 месяцев
    Далее
  • Специалист.ру
    Программирование на языке C (Си)
    1 месяц
    Далее
  • Специалист.ру
    Программирование на Visual С++
    1 месяц
    Далее
  • XYZ School
    Геймплей-программирование
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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";
}
Ответ написан
Ваш ответ на вопрос

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

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