По результатам опроса прошлого года известен список 10 политических деятелей в порядке убывания их популярности. Проведен новый опрос. Каждый из N журналистов (N - заданное число) назвал три различные фамилии из этого списка. Требуется получить новый список в порядке убывания популярности политических деятелей и показать место, которое занимал каждый деятель в предыдущем опросе. Предусмотреть проверку: каждый их опрошенных журналистов называл разные фамилии и только из имеющихся в старом списке.
Скажите с чего начать решать эту задачу?
Для начала, нам нужно определить, какие данные о политиках нужно хранить. Исходя из задачи, это фамилия (строка или массив символов), место в предыдущем рейтинге и текущий рейтинг. Такие данные удобнее всего хранить в структуре (ради всего святого, не пишите класс "Политик", это процедурная задача и ООП здесь не место). Место в предыдущем рейтинге рейтинге присваивается исходя из порядка чтения фамилий. Текущий рейтинг изначально у всех политиков равен 0. Всех политиков складываем в массив. Теперь журналисты. Читаем с консоли/из файла мнения журналистов. Временно сохраняем все три менеия каждого журналиста, чтобы сравнить их между собой. Если среди них есть повторяющиеся, выводим сообщение об этом и пропускаем этого журналиста. Если повторов нет, ищем фамилии в списке политиков. Если нашли - добавляем 1 к текущему рейтингу. Если фамилии нет в списке, выводим соответствующее сообщение. Вот мы обработали мнения всех журналистов, теперь у каждого политика есть новый рейтинг. Теперь нужно их отсортировать по этому рейтингу. Проще всего это сдедать методом пузырька. Не забываем, что политик у нас - структура, сравнивать нужно только нужное нам поле, а менять местами всю структуру. Всё, теперь осталось только вывести результат. Всё что нужно (фамилии и места в предыдущем рейтинге) мы сохранили, поэтому остальное - дело техники.
Решение задачи можно сильно упростить, если использовать векторы вместо массивов. Тогда не придётся заморачиваться выделением памяти. Также, для векторов определена функция сортировки, так что её тоже можно не писать. Только не забывайте, что мы сортируем структуры, так что придётся написать компаратор для двух структур и передать его в функцию sort.
с std::sort
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте:) Вот такой вопрос возник, почему вот этот после выполнения
ЗдравствуйтеЕсть программа, которая ищет ромбы в множестве заданных точек и выводит на экран координаты и площадь самого большого из них
Здравствуйте, не знаю как удалить элемент по заданному номеруМы создаем бинарный файл, в консоль заполняем структуру и она записывается...
Привет, ребят! У меня вопросПочему в коде ниже place_number в конце равен коду последнего символа?