Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
#1

Выборы - C++

16.03.2011, 23:20. Просмотров 1025. Ответов 5
Метки нет (Все метки)

На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер для считывания информации с бюллетеней передает информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передает + (плюс), в противном случае он передает - (минус). Таким образом, он передает последовательность из N символов - плюсов и минусов.

Бюллетень считается действительным, если пометка есть ровно в одной клетке. Недействительные бюллетени в подсчете результатов выборов не участвуют.

Партия проходит в Государственную Думу, только если она набирает не менее 7% от общего числа действительных бюллетеней.

Требуется вывести номера (в порядке их перечисления в бюллетене) всех партий, которые проходят в Государственную Думу.

Формат входных данных

В первой строке входных данных содержатся два числа, разделенные пробелом: N - количество партий и M - количество бюллетеней. Оба числа натуральные, N <= 200, M <= 100 000.

В следующих M строках записана информация, полученная из бюллетеней. Каждая строка - последовательность из N символов + или - (без пробелов).

Гарантируется, что есть хотя бы один действительный бюллетень.

Формат выходных данных

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

Я написал её так:
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
#include <iostream>
#include <cstring>
#include <sstream>
using namespace std;
int main()
{
int N,M,result[200];
char party[200];
cin>>N>>M;
for(int i=0;i<M;i++)
{
cin.getline(party, N-1);
if(party[i]=='+')
{
result[i]++;
}
}
for(int i=0;i<N;i++)
{
    if(100*result[i]>=7*M)
    {
    cout<<i+1<<" ";
    }
}
}
сама программа ничего не может сделать. В чём ошибка?

Добавлено через 2 минуты
Цитата Сообщение от Hi4ko Посмотреть сообщение
C++
1
cin.getline(party, N-1); if(party[i]=='+') { result[i]++; }
знаю, что ошибка, возможно, в этих строках, но не могу её грамотно исправить(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2011, 23:20     Выборы
Посмотрите здесь:

Выборы президента России 2012 год
Выборы 2012
JavaScript Как автоматически выполнить Submit после выборы значения из выпадающего списка?
Pascal Выборы. Олимпиадная задача
Выборы
Turbo Pascal Используя ООП, описать выборы. Примеры объектов: человек, кандидат (количество набранных голосов).
Выборы, выборы кандидаты PHP и Python? PHP
C++ Выборы, кандидаты, рейтинги
Выборы в госдуму 2016
Задача про выборы, подсчет кандидатов PascalABC.NET
Python Выборы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
16.03.2011, 23:53     Выборы #2
Вот написал 25 строк, и уже в Думе - программистом.
Пусть даже зарплаты не дадут (еще не заслужил), но депутатский буфет-то он тут - рядом.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
17.03.2011, 00:00  [ТС]     Выборы #3
Цитата Сообщение от IrineK Посмотреть сообщение
Вот написал 25 строк, и уже в Думе - программистом.
Пусть даже зарплаты не дадут (еще не заслужил), но депутатский буфет-то он тут - рядом.
было бы смешно, если бы не был мой скилл в C++ плачевен(
LaГushan
124 / 124 / 14
Регистрация: 12.03.2011
Сообщений: 227
17.03.2011, 01:09     Выборы #4
Hi4ko, ну да, вы в принципе правы, когда указывали строки с возможными ошибками
C++
1
cin.getline(party, N-1);
Вот тут, если N = 5, то в party будет только 3 символа, поэтому лучше не вычитать 1, а прибавлять.

C++
1
if(party[i]=='+')
вот тут, вы проверяете только один символ в строке, а не всю строку.
Хотя лучше напишите какой должен быть вход в программу, и что она должна выдавать, а то не очень понятно
fruktik
 Аватар для fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
17.03.2011, 01:13     Выборы #5
не по теме, но...
выборы...название меня в ступор поставило)))хаха

форум настроение на ночь поднимает
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
17.03.2011, 15:22  [ТС]     Выборы #6
Цитата Сообщение от LaГushan Посмотреть сообщение
Hi4ko, ну да, вы в принципе правы, когда указывали строки с возможными ошибками
C++
1
cin.getline(party, N-1);
Вот тут, если N = 5, то в party будет только 3 символа, поэтому лучше не вычитать 1, а прибавлять.

C++
1
if(party[i]=='+')
вот тут, вы проверяете только один символ в строке, а не всю строку.
Хотя лучше напишите какой должен быть вход в программу, и что она должна выдавать, а то не очень понятно
http://informatics.mccme.ru/moodle/m...hapterid=483#1
там есть примеры)
Yandex
Объявления
17.03.2011, 15:22     Выборы
Ответ Создать тему
Опции темы

Текущее время: 05:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru