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

Дана последовательность  не  более  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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы