Как сравнить группу элементов в массиве в с++?

Рейтинг: 0Ответов: 1Опубликовано: 14.02.2023

Дан целочисленный массив а1, а2,…, аn, среди элементов которого могут быть равные. Из каждой группы равных между собой элементов нужно оставить только один, выбросив все остальные. Освободившийся хвост массива заполнить нулями. Я тут начал, но не понимаю как продолжить.

#include <iostream>
int main() {
setlocale(0, "");
int y;

std::cout << "Введите кол - во переменных в массиве: ";
std::cin >> y;

int* a = new int[y];
for (int i = 0; i < y; i++) {
    std::cout << "a[" << i << "] = ";
    std::cin >> a[i];
    }
 }

Ответы

▲ 1Принят

Раз можно пользоваться стандартными алгоритмами...

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int n;

    cout << "Введите кол - во переменных в массиве: ";
    cin >> n;

    int* a = new int[n];

    for (int i = 0; i < n; i++)
    {
        cout << "a[" << i << "] = ";
        cin >> a[i];
    }

    sort(a,a+n);
    int * e = unique(a,a+n);
    while(e != a+n) *e++ = 0;

    for (int i = 0; i < n; i++)
        cout << "a[" << i << "] = " << a[i] << endl;

}