Исправьте ошибки. найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами (паскаль) var i,n,i1,i2: longint; a: array[1..100] of real; amin,amax,p: real; begin assign (input,'input.txt'); assign (output,'output.txt'); reset (input); rewrite (output); readln(n); p: =1; for i: =1 to n do read (a[i]); amin: =a[1]; for i: =1 to n do if abs(amin)> =abs(a[i]) then begin amin: =a[i]; i1: =i; end; amax: =a[1]; for i: =1 to n do if abs(amax)< =abs(a[i]) then begin amax: =a[i]; i2: =i; end; if (i2> i1) and (i1+1< > i2) then for i: =i1+1 to i2-1 do p: =p*a[i] else if (i1> i2) and (i1-1< > i2) then for i: =i1-1 downto i2+1 do p: =p*a[i] else begin write('0'); end; write (abs(p): 0: 3); close (input); close (output); end. в ответе в выходном файле необходимо вывести 0.000, если между максимальным и минимальным по модулю элементом нет других элементов.

lenasinyikovich lenasinyikovich    3   03.06.2019 02:50    5

Ответы
стас482 стас482  03.07.2020 16:07
var  i, n: longint;
  a: array[1..10] of real;
  amin, amax, p: real;
begin
  assign(output, 'output.txt');
  rewrite(output);
  readln(n);
  if n = 2 then
  begin
    writeln('0 ');
    close(output);
  end
  else
  begin
    p := 1;
    for i := 1 to n do
      read(a[i]);
    amin := a[1];
    for i := 1 to n do
      if amin >= abs(a[i]) then
        amin := a[i];
    amax := a[1];
    for i := 1 to n do
    begin
      if amax <= a[i] then
        amax := a[i];
    end;
    if n > 2 then
      for i := 2 to n - 1 do
        p := p * a[i];
    write(p:0:3);
    close(output);
  end;
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика