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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2020, 19:16   #1
operator 49
Новичок
Джуниор
 
Регистрация: 30.01.2020
Сообщений: 1
По умолчанию Эта прога находит наибольшее число из рандомно выдавших компьютеру, нужно добавить еще команду, чтоб находилось еще второе по значению число перед наибольшим.

Код:
program z1;
var i,imax:integer;
a:array[1..10] of integer;
begin
randomize;
for i:=1 to 10 do
begin
a[i]:=random(100);
writeln('a[',i, ']=',a[i]);
end;
imax:=1;
for i:=2 to 10 do
if a[i]>a[imax] then imax:=i;
writeln('наибольший ',a[imax]);
end.
Эта прога находит наибольшее число из рандомно выдавших компьютеру, нужно добавить еще команду, чтоб находилось еще второе по значению число перед наибольшим.

Последний раз редактировалось operator 49; 30.01.2020 в 19:18. Причина: затупил
operator 49 вне форума Ответить с цитированием
Старый 30.01.2020, 20:54   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Исходник надо форматировать.
Надеюсь, адреса не нужны - только максимальные 1-е и 2-е ?
Код:
program z1;
var i,max1,max2:integer;
a:array[1..10] of integer;
begin
randomize;
for i:=1 to 10 do
begin
   a[i]:=random(100);
   writeln('a[',i, ']=',a[i]);
end;
max1 := a[1] ;
max2 := a[2] ;
if a[1] < a[2] then
  begin
      max1 := a[2] ;
      max2 := a[1]
  end;
for i:=3 to 10 do
  if a[i] > max1 then
  begin
     max2 := max1;
     max1 := a[i]
  end
  else
   if a[i] > max2  then  max2 := a[i] ;
writeln(max1,max2);
end.

Последний раз редактировалось digitalis; 30.01.2020 в 21:06.
digitalis вне форума Ответить с цитированием
Старый 30.01.2020, 21:09   #3
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Или так:
Код:
program z1;
const
    N = 10;
var
    a: array[1..N] of integer;
    i, max1, max2, buff: byte;
begin
    randomize;
    for i:=1 to N do begin
        a[i] := random(100);
        write(a[i]:4);        
    end;
    writeln;
   
    if a[1] < a[2] then begin
        max1 := 1;
        max2 := 2;
    end
    else begin
        max1 := 2;
        max2 := 1;
    end;
   
    for i:=3 to N do
        if a[i] > a[max1] then begin
            buff := max1;
            max1 := i;
            if a[buff] > a[max2] then
                max2 := buff;
        end
        else
            if a[i] > a[max2] then
                max2 := i;    
               
    writeln('№', max1:2,': ', a[max1]:2);
    writeln('№', max2:2,': ', a[max2]:2);
end.
I am not a wizard, I am just learning.

Последний раз редактировалось Desc; 30.01.2020 в 21:13. Причина: Смена имен переменных
Desc вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Дано N - значное число и число K. Заданное число N нужно K-значным: либо удалить из числа N несколько первых цифр, либо в конце числа N добавить несколько нулей ClarkBrown Помощь студентам 1 10.12.2017 21:32
Придумайте алгоритм, вводящий три целых числа, который находит второе по величине число, если оно существует. We1zer Общие вопросы C/C++ 2 14.04.2017 13:48
Паскаль. Удалить из файла три первых числа. Найти в файле наибольшее число и два числа, стоящих перед ним. Бугра Помощь студентам 1 05.04.2016 16:08
Задано натуральное число N. Найти наименьшее и наибольшее число, состоящее из тех же цифр и в таком же количестве, что и N dimon_snake Паскаль, Turbo Pascal, PascalABC.NET 9 17.11.2015 23:38
программа находит наибольшее чётное число в данном одномерном массиве целых чисел katya111 Паскаль, Turbo Pascal, PascalABC.NET 4 18.05.2011 15:35