В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
astafiev94
astafiev94
29.04.2021 22:01 •  Информатика

Найти произведение элементов одномерного массива, состоящего из 20 элементов. Элементы вводятся с клавиатуры. (Язык Паскаль)

Показать ответ
Ответ:
Как-то так
#include <iostream>
using namespace std;
int main(){    cout << "Vvedute kol-vo ocenok" << endl;
    int n,i,a,Four,Five;    n = i = a = Four = Five = 0;
    cin >> n;
    for (i = 1; i <= n; i++)    {        cin >> a;        if (a == 4){         Four++;}  else if (a == 5)      {         Five++;      }    }    if (Four > Five){   cout << "Four" << endl;} else if (Five > Four)      {   cout << "Five" << endl;      }      else      {         cout << "Equal"<< endl;      }      cout << "Kol-vo 4: " << Four << " Kol-vo 5: " << Five << endl;    return 0;}
0,0(0 оценок)
Ответ:
собакаАделет
собакаАделет
23.11.2022 01:35

Резюмирую:

1) Использование того, чего не понимаешь (6-8 строки)

2) Решение за O(N^2) при ограничении N < 10^5, что очень плохо

3) Нет проверки на выход за границы выделенной памяти (20, 22 строки)

4) Абсолютно неверная идея алгоритма: сравнивать только соседние элементы, да и еще и непонятно зачем делать во вложенном цикле + неверное написание тела цикла фор: полное непонимание того, как он работает и что делает

5) Нет проверки на то, использовали мы конкретное число уже или нет

Итог: полностью неверное решение, которое надо не менять, а стирать и переделывать.

Возможное решение на сотку:

#include <iostream>

#include <vector>

#include <map>

using namespace std;

signed main() {

   map<int, int> cnt;

   int n;

   cin >> n;

   vector<int> a(n), res;

   for(auto &i: a){

       cin >> i;

       cnt[i]++;

   }

   for(auto &i: a){

       if(cnt[i] > 1) res.push_back(i);

       cnt[i] = 0;

   }

   if(res.empty()) cout << 0;

   else for(auto &i: res) cout << i << " ";

}

P.S. Если что непонятно, то спрашивай - распишу поминутно кто где того самого

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота