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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2016, 00:51   #1
kola1010
 
Регистрация: 03.11.2016
Сообщений: 6
По умолчанию Помогите с решением.Цикл.

Пользователь вводит целые числа. Вывести сумму чисел, встречающихся более одного раза и при этом идущих подряд. 0 – метка остановки.
Пример: 2 3 3 8 5 4 4 4 -7 1 -1 -1 2 0
kola1010 вне форума Ответить с цитированием
Старый 03.11.2016, 08:33   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

какой ответ в вашем примере?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 06.11.2016, 12:49   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Для разных чисел:
Код:
var n,n0,s:integer;
begin
   n0:=MaxInt;
   s:=0;
   Repeat
      Write('n = '); Readln(n);
      If n<>n0 then
         s:=s+n;
      n0:=n;
   Until n=0;
   Writeln('s = ',s);
   Readln;
end.
Для одинаковых чисел:
Код:
var n,n0,s:integer;
    d:boolean;
begin
   n0:=MaxInt;
   s:=0;
   d:=false;
   Repeat
      Write('n = '); Readln(n);
      If n=n0 then
      begin
         If not d then
            s:=s+n;
         s:=s+n;
         d:=true;
      end else
         d:=false;
      n0:=n;
   Until n=0;
   Writeln('s = ',s);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 06.11.2016 в 14:08.
newerow1989 вне форума Ответить с цитированием
Старый 06.11.2016, 13:44   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Как-то вот так...
Код:
program  abc ;
var 
  Arr: array [1..100] of integer ; 
  i,n,sum,n_gt_1,n_cur:  integer ;
begin
 { заполнение  массива }
   for i := 1 to 100 do
     begin
       writeln ('n=') ; readln (n) ;
       Arr[i] := n ;
       if n = 0 then Break ;
     end ;

{ анализ }
   sum := Arr[1] ; n_cur := sum ;  n_gt_1 := 1 ;
   for i := 2 to 100 do
     begin
      if Arr[i] = n_cur then
         begin sum := sum + Arr[i] ; Inc (n_gt_1) end
       else
         begin
           if n_gt_1>1 then
               writeln ('ind=',i,' element=',n_cur,' n=',n_gt_1,' sum=',sum) ;
           sum := Arr[i] ; n_cur := sum ; n_gt_1 := 1 ;
         end ;
      if Arr[i] = 0 then Break ;
     end ;
end.
Для приведенных данных результат будет такой :



Здесь "индекс" - индекс элемента массива, первого следующего за подряд идущими.
================
Предыдущее решение, даже дополненное, я не понял. Что значит : "Для разных чисел:", "Для одинаковых чисел:" ?
Есть 1 задача, для нее требуется 1 прога - и для одинаковых, и для разных, и для еще более разных чисел.
================
А с вопросчика - как с гуся вода : написали - и хрен с вами. Но не для него это писалось, а так, для разминки мозгов.

Последний раз редактировалось digitalis; 07.11.2016 в 13:43.
digitalis вне форума Ответить с цитированием
Старый 08.11.2016, 21:40   #5
kola1010
 
Регистрация: 03.11.2016
Сообщений: 6
По умолчанию

Спасибо
kola1010 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с решением Aleks763 Паскаль, Turbo Pascal, PascalABC.NET 3 22.10.2016 16:35
Помогите с решением. Tigrik913 Помощь студентам 1 08.12.2015 23:42
На C++,помогите с решением LeshkinMaloy Помощь студентам 1 18.11.2009 22:35