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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.03.2012, 17:23   #1
RusseLfStyle
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 24
По умолчанию Непонятная ошибка

Когда ввожу 1,0, почему-то при ответе "1" выдает неправильный ответ(во встроенном тестере). Помогите исправить код, пожалуйста.


На столе лежат n монеток. Некоторые из них лежат вверх решкой, а некоторые - гербом. Определите минимальное число монеток, которые нужно перевернуть, чтобы все монетки были повернуты вверх одной и той же стороной.
Входные данные:
В первой строке входного файла INPUT.TXT записано натуральное число N (1 <= N <= 100) - число монеток. В каждой из последующих N строк содержится одно целое число - 1 если монетка лежит решкой вверх и 0 если вверх гербом.

Выходные данные:
В выходной файл OUTPUT.TXT выведите минимальное количество монет, которые нужно перевернуть.

Пример входного файла (input.txt):
5
1
0
1
1
0

Пример выходного файла (output.txt):
2



Код:
var m:array [1..1000]of integer;
    i,k,s,n:byte;
begin
readln(n);
s:=0;
for i:=1 to n do
readln(m[i]);
for i:=1 to n do
s:=s+m[i];
k:=n-s;
writeln(k);
end.

Последний раз редактировалось RusseLfStyle; 17.03.2012 в 17:44.
RusseLfStyle вне форума
Старый 17.03.2012, 17:50   #2
RusseLfStyle
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 24
По умолчанию

Все. Разобрался. Помощь больше не требуется.
RusseLfStyle вне форума
Старый 18.03.2012, 09:09   #3
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

а зачем здесь массив то?
я бы сделал примерно так:
Код:
var n,i,a,s:integer;
begin
  readln(n);
  s:=0;
  for i:=1 to n do
    begin
      readln(a);
      s:=s+a;
    end;
  writeln(n div 2-abs(2*s-n) div 2);
  // или так
  // if n>2*s then writeln(s) else writeln(n-s);
end.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная ошибка в С++ viron Помощь студентам 1 21.01.2012 20:34
Непонятная ошибка Shurik(c) Помощь студентам 0 01.06.2011 20:34
(СИ)непонятная ошибка. RZMTZM Помощь студентам 7 04.02.2010 02:49
Непонятная ошибка Дырдин Общие вопросы C/C++ 7 14.10.2009 21:30
Непонятная ошибка. program123 Общие вопросы Delphi 12 12.04.2009 23:07