Вопрос Задача на с++. Не понимаю как написать

Регистрация
3 Дек 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
Дан массив. Распечатайте только те значения элементов массива, которые встречаются в нем ровно один раз. Элементы следует распечатывать в том порядке, в котором они встречаются в массиве. Создавать новые массивы нельзя.

В первой строке входных данных содержится натуральное число n (n⩽100) — количество элементов массива. В следующей строке содержится n натуральных чисел, не превосходящих 30000 — элементы массива.
 
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
const auto m = 100U;
int box[m];
size_t n;
cin >> n;
for (auto i = 0U; i < n; ++i) {
cin >> box;
}
for (auto i = 0U; i < n; ++i) {
if (count(begin(box), end(box), box) == 1) {
cout << box << ' ';
}
}
puts("");
}
 
#include <iostream>
#include <vector>
using namespace std;
int main(){
int a;
cin >> a;
vector <int> v(a);
for (int i = 0; i < a; i++){
cin >> v;
}
for (int i = 0; i < a; i++){
bool flag = false;
for (int j = 0; j < i; j++){
if(v == v[j]){
flag = true;
}
}
if (!flag){
cout << v << " ";
}
}
}
 
если массив можно изменять, то
auto last = unique(arr, arr+n);
for (auto it = arr; it != last; ++it ) cout << *it << " ";
 
Целый день я бился над этой задачей, использовал целых три(!) массива и все коту под хвост! Ибо не дочитал задание )
 
Назад
Сверху