Есть ответ 👍

Не могу решить задачу на while. if не использовать

112
155
Посмотреть ответы 2

Ответы на вопрос:

kucm14
4,8(3 оценок)

i = 9

while i < 30:

print(i)

i += 9

StepaBeng
4,4(5 оценок)

#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) в конце вывода лишний пробел

Могу решить на пайтоне, если важно просто закрыть задачу. А так, судя по всему, решение только массивами требует более глубоких знаний(динамические массивы и векторы), чем есть у меня в с++. Возможно, сможете улучшить мое решение

(кинул бы в комментарии, но там ограничение на кол-во символов)

Популярно: Информатика