Опубликовано 03.01.2018 по предмету Информатика от Гость

Дана последовательность
не более N
ненулевых целых чисел, последним числом в последовательности является
0. Ввести эту последовательность в одномерный массив и
вычислить хаpактеристики
.Найти порядковые номера и сумму двух наибольших элементов. ( в Паскаль )


Ответ оставил Гость

Type
  tE = record
    v: integer;
    p: integer;
  end;

procedure Swap2E(var a: tE; var b: tE);
// Обмен содержимым пары записей
var
  Buff: integer;
begin
  Buff := a.v; a.v := b.v; b.v := Buff;
  Buff := a.p; a.p := b.p; b.p := Buff
end;

procedure Swap3E(var a: tE; var b: tE; var c: tE);
// Обмен содержимым трех записей
// Предполагается, что до вызова процедуры a.v>=b.v,
// после вызова значение с.v помещается в a.v или b.v так,
// чтобы большее из трех значений попало в a.v, а следующее
// по величине попало в b.v. Младшее значение теряется. 
begin
  if c.v >= a.v then begin
    Swap2E(a, b); Swap2E(a, c)
  end
  else
  if c.v > b.v then Swap2E(b, c);
end;

const
  n = 50;

var
  a: array[1..n] of integer;
  R1, R2, T: tE;
  i, e, m: integer;

begin
  i := 1;
  writeln(Вводите числа, 0 - конец ввода);
  repeat
    read(e);
    a[i] := e;
    i:=i+1;
  until e = 0;
  m := i;
  if a[1] > a[2] then begin
    R1.v := a[1]; R1.p := 1;
    R2.v := a[2]; R2.p := 2
  end
  else begin
    R1.v := a[2]; R1.p := 2;
    R2.v := a[1]; R2.p := 1
  end;
  for i := 3 to m do
  begin
    T.v := a[i];
    T.p := i;
    Swap3E(R1, R2, T)
  end;
  writeln(Максимальные значения имеют элементы с номерами , R1.p, и , R2.p);
  writeln(Сумма этих элементов равна , R1.v + R2.v)
end.

Контрольный пример:

Вводите числа, 0 - конец ввода
18
6
13
40
14
52
0
Максимальные значения имеют элементы с номерами 6 и 4
Сумма этих элементов равна 92



Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы