Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 15.10.2011, 20:51   #1 (permalink)
ljrerby
Member
 
Регистрация: 24.08.2010
Сообщений: 65
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Поиск двух MAX в одномерном массиве

Вообщем написал задачу, все вроде ничего, но вот первый МАХ считает, а вот 2й никак. Вид программы должен остаться такой же.
Я считаю, что недочет идет во 2м IF'e

program qq;
uses crt;
const N = 5;
var a: array [1..N] of integer;
i, Max, Maxx: integer;
begin
clrscr;
randomize;
writeln('Исходный массив');
for i:=1 to N do begin
a[i] := random(20) -10;
write(a[i]:4);
end;
Max := a[1];
for i:=2 to N do begin
if a[i] > Max then Max :=a[i] else
if (Max>Maxx) and (maxx>a[i]) then maxx:=a[i]; end; <<<Вот здесь
writeln;
writeln(max:4, maxx:4);
end.
ljrerby вне форума   Ответить с цитированием

Старый 15.10.2011, 20:51
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Внимательно прочитайте содержимое этих тем

Разработать функцию для определения количества нулей в одномерном массиве
Массивы
Паскаль, поиск максимальных и минимальных значений в массиве
Поиск по MAC-адресу
Браузер и поиск
Поиск по умолчанию

Старый 15.10.2011, 21:00   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Сформулируйте внятно задачу - о каких двух максимумах идет речь? О максимальном числе и следующим за ним по величине?
Vladimir_S вне форума   Ответить с цитированием
Старый 15.10.2011, 21:18   #3 (permalink)
ljrerby
Member
 
Регистрация: 24.08.2010
Сообщений: 65
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да, именно так
Пример. Исходный массив: -5 0 6 -8 1
Должно выйти 6 1
ljrerby вне форума   Ответить с цитированием
Старый 15.10.2011, 22:27   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ljrerby Посмотреть сообщение
Да, именно так
Пример. Исходный массив: -5 0 6 -8 1
Должно выйти 6 1
Тогда например так:
Код:
uses crt;
const
 N = 5;
var
 a: array [1..N] of integer;
 i, Max, Maxx: integer;
begin
 clrscr;
 randomize;
 writeln('Исходный массив');
 for i:=1 to N do
  begin
   a[i] := random(20) -10;
   write(a[i]:4);
  end;
 Max := a[1];
 for i:=2 to N do
  if a[i]>Max then Max:=a[i];
 Maxx:=-12;
 for i:=1 to N do
  if (a[i]>Maxx) and (a[i]<Max) then Maxx:=a[i];
 writeln;
 writeln(max:4, maxx:4);
 readln;
end.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.10.2011, 23:22   #5 (permalink)
ljrerby
Member
 
Регистрация: 24.08.2010
Сообщений: 65
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо, все получилось
ljrerby вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:02.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.