Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2012, 15:30   #1
Yankeee
Новичок
Джуниор
 
Регистрация: 21.03.2012
Сообщений: 2
По умолчанию Не правильно считывает массив

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

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

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

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

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

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

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

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

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

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

Пример

Входные данные
3 4
+--
+--
-+-
+-+
Выходные данные
1 2

Входные данные
1 5
+
-
-
-
-
Выходные данные
1

вот код программы:
Код:
program Vibori;
var
a: array [1..100] of string;
k: array [1..20] of integer;
n, m, i, g, l: integer;
begin
readln (m,n);
for i:= 1 to m do
readln (a[i]);
begin
l:= 0;
for g:= 1 to n do
if copy (a[i], g)='+' then  l:= l+1;
if (l>1) or (l=0) then a[i,1]:= 'n';
end;
for g:= 1 to n do
begin
k[g]:=0;
for i:= 1 to m do
if (copy(a[i], g, 1)='+') and (copy(a[i], 1, 1)<>'n') then k[g]:= k[g]+1;
end;
for g:= 1 to m do
if k[g]> m/100*7 then
writeln(g,' ',);
end.

Последний раз редактировалось ACE Valery; 21.03.2012 в 16:30.
Yankeee вне форума Ответить с цитированием
Старый 21.03.2012, 16:30   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Не вижу описания ошибки
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Exception когда считывает с файла Natok Помощь студентам 1 22.04.2011 11:25
Не считывает переменную в C# FACE OFF Помощь студентам 6 17.10.2010 10:21
Как правильно инициализировать через функцию массив? Catharsis Общие вопросы C/C++ 3 14.05.2010 16:34
Как правильно передать через ссылку двумерный динамический массив? amerhant Общие вопросы C/C++ 2 21.04.2010 23:50