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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2010, 18:36   #1
nadюх
Новичок
Джуниор
 
Регистрация: 25.09.2010
Сообщений: 1
По умолчанию массивы.

помогите пожалуйста!!!!! в одномерном массиве состоящим из целочисленных элементов вычислить сумму элементов массива,расположенных между первым и последним нулевыми элементами. на паскале,делфи,си или яве.
nadюх вне форума Ответить с цитированием
Старый 25.09.2010, 18:53   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

[pascal/delphi]
Код:
k:=-1;
s:=0;
k1:=-1;
for i:=1 to n do
if a[i]=0 then begin k:=i;break;end;
if k<>-1 then
for i:=k+1 to n do
if a[i]=0 then begin k1:=i;break;end;
if k1<>-1 then 
for i:=k+1 to k1-1 do
s:=s+a[i];
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 26.09.2010, 00:16   #3
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Pascal или Delphi

Попробуй так... правда проверить код нет возможности.
Код:
var
  i, sum, LastZeroIndex: Integer;
  a[1..20]: Integer;
  DoSum: Boolean;

begin
 // здесь должно быть заполнение массива
  ...

  LastZeroIndex := -1;
  sum := 0;
  DoSum := False;
  for i:=20 downto 1 do
  begin
    if a[i]=0 then 
    begin
      LastZeroIndex := I;
      Break;
    end;
  end;
  if LastZeroIndex = -1 then
  begin
    writeln('Массив не содержит 0!');
    Exit;
  end;
  for i:=1 to LastZeroIndex do
  begin
    if DoSum then sum := sum + a[i]
    else
      if a[i]=0 then
      begin
        if i=LastZeroIndex then
        begin
          writeln('Массив содержит только один 0!');
          Exit;
        end;
      end
      else
        DoSum := True;
  end;

  WriteLn('Сумма элементов = ', sum);
  readln;
end;
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
[C++] Массивы AquaticSoul Общие вопросы C/C++ 2 06.04.2010 15:30
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12