Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.04.2022
Сообщений: 16

Напишите программу которая будет выполнять подсчет голосов на голосовании

25.04.2022, 18:47. Показов 800. Ответов 4

Студворк — интернет-сервис помощи студентам
Упражнение 2:
Напишите программу которая будет выполнять подсчет голосов на голосовании.
В голосовании представлено 6 позиций, которые будут сохранены в массиве. Программа будет высчитывать случай равенства голосов, означающий, что несколько позиций набрали одинаковое количество голосов. Для этого выигравшие позиции должны быть сохранены специальном массиве, все эти позиций должны быть выведены дополнительно к сообщению:
«Нет победившей партии, переходим к другому туру голосования.»
Затем вернитесь к повторному вводу голосов для 6 позиций и подсчитайте победителя, пока не останется только одна победившая позиция. Обратите внимание, что здесь должны быть запущены 2 цикла — один внешний, который запускает все больше и больше раундов голосования, вычисляет и выводит, кто выиграл в каждом раунде, пока не будет принято решение (выигрывает только одна позиция), и внутренний цикл, который собирает голоса позиций в заданный раунд голосования (пока не будет введено -1) и сохраняет их в массиве из 6 ячеек.
Например, при вводе:
1
1
2
3
3
3
4
5
6
6
6
-1
1
2
3
4
5
5
6
-1
Результат:
В первом туре голосования программа будет содержать (и именно это будет выведено) следующее количество голосов (каждая ячейка в системе представляет одну позицию по индексу слева направо):
2 1 3 1 1 3
То есть за первую позицию проголосовало 2, вторая 1, третья 3, четвертая 1, пятая 1 и шестая 3.
Например: «Есть равенство, так что будет выведено: нет победившей партии, переходим к другому туру выборов.
Во втором туре голосования система содержит (будет выведено):
1 1 1 1 2 1
Есть только одна победившая сторона.
Выигрышная партия, которая будет напечатана: 5.
И программа закончится, потому что мы пришли к решению
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.04.2022, 18:47
Ответы с готовыми решениями:

Составить программу, которая будет выполнять функции
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ArrayPtogram { class...

Написать программу, которая будет выполнять задание
Пользователь вводит два натуральных числа rub и kop - цену карандаша - и total - имеющуюся сумму денег, целое число рублей. Вывести на...

Написать программу которая будет выполнять следующие действия
Написать программу на Ассемблере котрая будет выполнятт следущие действия (((A*X/B)-X/C)*X/D)*X Очень прошу помочь в ближайший час,...

4
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
25.04.2022, 19:59
mod4321, если считать цифры из ввода, то для первой позиции (цифра 1) - 3шт, для второй позиции (цифра 2) - 2шт, и так далее. Откуда Вы взяли 2 1 3 1 1 3 - не ясно
0
0 / 0 / 0
Регистрация: 05.04.2022
Сообщений: 16
26.04.2022, 14:36  [ТС]
2 1 3 1 1 3 - это количество раз сколько получила каждая позиция из 6.
То есть за первую позицию проголосовали 2 раза , за вторую 1 раз, за третью 3 раза, за четвертую 1 раз, за пятую 1 раз и за шестую 3 раза.

Добавлено через 2 минуты
Например, при вводе:
первый массив
1
1
2
3
3
3
4
5
6
6
6
-1
второй массив
1
2
3
4
5
5
6
-1
0
 Аватар для iLinks
800 / 458 / 237
Регистрация: 03.01.2017
Сообщений: 1,339
26.04.2022, 16:34
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class Elections
{
    public List<int> Votes { get; set; } = new List<int>();
    public (int, int) GetEqualityPosition()
    {
        var newVotes = Votes.Where(v => v != -1).GroupBy(v => v).OrderBy(v => v.Key).Select(v => v.Count()).ToList();
        foreach (var vote in newVotes)
        {
            Console.Write(vote + " ");
        }
        Console.WriteLine();
        if (newVotes.GroupBy(v => v).Where(v => v.Key == newVotes.Max() && v.Count() > 1).Select(v => v.Key).Count() == 0)
        {
            return (newVotes.IndexOf(newVotes.Max()) + 1, newVotes.Max());
        }
        else
        {
            Console.WriteLine("Нет победившей партии, переходим к другому туру голосования.");
            return (-1, -1);
        }
    }
}
static void Main(string[] args)
{
    Elections elections;
    (int, int) winner = (-1, -1);
    do
    {
        elections = new Elections();
        int vote = 0;
        do
        {
            Console.Write("Введите позицию партии: ");
            while(!int.TryParse(Console.ReadLine(), out vote) || vote < -1 || vote > 6)
            {
                Console.WriteLine("Вы ввели не число или неверное число.");
                Console.Write("Введите позицию партии: ");
            }
            elections.Votes.Add(vote);
        }
        while (vote != -1);
        winner = elections.GetEqualityPosition();
    }
    while (winner.Item1 == -1 && winner.Item2 == -1);
    Console.WriteLine($"Победила партия с позицией {winner.Item1}, набрав {winner.Item2} голос{(winner.Item2 ==1 ? "": (winner.Item2 < 5 ? "а" : "ов"))}");
    Console.ReadLine();
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Введите позицию партии: 1
Введите позицию партии: 1
Введите позицию партии: 2
Введите позицию партии: 3
Введите позицию партии: 3
Введите позицию партии: 3
Введите позицию партии: 4
Введите позицию партии: 5
Введите позицию партии: 6
Введите позицию партии: 6
Введите позицию партии: 6
Введите позицию партии: -1
2 1 3 1 1 3
Нет победившей партии, переходим к другому туру голосования.
Введите позицию партии: 1
Введите позицию партии: 2
Введите позицию партии: 3
Введите позицию партии: 4
Введите позицию партии: 5
Введите позицию партии: 5
Введите позицию партии: 6
Введите позицию партии: -1
1 1 1 1 2 1
Победила партия с позицией 5, набрав 2 голоса
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
26.04.2022, 18:35
mod4321, ну Вы бы в начальном тексте так и написали. а то разделили два массива числом -1, думали, что это понятно? для меня -1 значил голос против всех, например.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.04.2022, 18:35
Помогаю со студенческими работами здесь

Напишите программу, которая сможет выполнять перевод из одной валюты в другие
Здравствуйте, помогите пожалуйста!:help: Условие: Напишите программу, которая сможет выполнять перевод из одной валюты в другие по...

Напишите программу, которая сможет выполнять перевод из одной валюты в другие
Здравствуйте, помогите пожалуйста!:help: Условие: Напишите программу, которая сможет выполнять перевод из одной валюты в другие по...

Напишите программу, которая сможет выполнять функции простейшего редактора текста
Привет братцы, помогите решить задачу в Delphi пожалуйста, вот она:Напишите программу, которая сможет выполнять функции простейшего...

Накрутка голосов в голосовании на сайте
http://grodnonews.by/mod/oformlenie_2019/ - вот собственно сайт (не реклама) в нём мне нужно накрутить несколько сотен голосов, соорудил...

Нужно составить программу, которая будет выполнять различные действия с матрицами
Разработать приложение (C#), содержащее методы обработки основных операций с матрицами (сложение, умножение, транспонирование, нахождение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru