#include <iostream>
using namespace std;
int main()
{
int N; cin >> N;
int list[N];
int a = 0;
while (a < N)
{
int n; cin >> n;
list[a] = n;
a ++;
}
int flag_2 = 0;
a = 0;
while (a < N)
{
int b = 0;
int flag = 0;
while (b < N)
{
if (list[a] == list[b])
{
flag ++;
flag_2 ++;
}
b ++;
}
if (flag > 1) cout << list[a] << " ";
a ++;
}
if (flag_2 <= N) cout << 0;
}
1) ответ выводится не списком, а просто отдельными числами через пробел
2) каждое повторяющееся число выводится несколько раз(столько, сколько встречается)
3) в конце вывода лишний пробел
Могу решить на пайтоне, если важно просто закрыть задачу. А так, судя по всему, решение только массивами требует более глубоких знаний(динамические массивы и векторы), чем есть у меня в с++. Возможно, сможете улучшить мое решение
(кинул бы в комментарии, но там ограничение на кол-во символов)
var
x:integer;
begin
writeln('Введите номер месяца ');
readln(x);
Case x of
1:writeln('Январь');
2:writeln('Февраль');
3:writeln('Март');
4:writeln('Апрель');
5:writeln('Май');
6:writeln('Июнь');
7:writeln('Июль');
8:writeln('Август');
9:writeln('Сентябрь');
10:writeln('Октябрь');
11:writeln('Ноябрь');
12:writeln('Декабрь');
end;
end.