Предмет: Информатика, автор: sapognikovalexei

Исправить код на C++
Уникальные элементы
Дан массив. Распечатайте только те значения элементов массива, которые встречаются в нем ровно один раз. Элементы следует распечатывать в том порядке, в котором они встречаются в массиве. Создавать новые массивы нельзя.

Входные данные

В первой строке входных данных содержится натуральное число n (n≤100) — количество элементов массива. В следующей строке содержится n натуральных чисел, не превосходящих 30000 — элементы массива.

Выходные данные

Выведите ответ на задачу.

Есть код который удаляет повторяющиеся числа:
#include
#include
using namespace std;

int main()
{
int n;
cin >> n;
vector v(n);
for (int i = 0; i < n; ++i){
cin >> v[i];
}
for (int i = 0; i < n; ++i){
bool flag = false;
for (int j = 0; j < i; ++j){
if (v[i] == v[j]){
flag = true;
}
}
if (!flag){
cout << v[i] << " ";
}
}
return 0;
}

Ответы

Автор ответа: suprime11505
1

Ответ:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#include <iostream>

#include <vector>

using namespace std;

int main () {

   int n, numMin = 0, p = 0;

   cin >> n;

   vector <int> num(n);

   for (int i = 0; i < n; i++)

       cin >> num[i];

   for (int i = 0; i < n; i++) {

       int rav = 0;

       for (int i = p; i < n; i++) {

           if (num[numMin] == num[i]) {

               rav++;

           }

       }

       if (rav == 1) {

           cout << num[numMin] << " ";

       }

       numMin++;

       p++;

   }

return 0;

}

На вход получаю:

5

1 3 3 3 2

На выход получаю:

1 3 2 (вместо 1 2)

1

Объяснение:

Похожие вопросы
Предмет: Информатика, автор: abcdefg89885752