Как сравнить группу элементов в массиве в с++?
Дан целочисленный массив а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 шт):
Автор решения: Harry
→ Ссылка
Раз можно пользоваться стандартными алгоритмами...
#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;
}