Информатика, опубликовано 2018-08-22 19:51:30 by Гость

Исправьте ошибки. Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами (Паскаль)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)i1) and (i1+1i2) then for i:=i1+1 to i2-1 do p:=p*a[i] else if (i1>i2) and (i1-1i2) 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, если между максимальным и минимальным по модулю элементом нет других элементов.

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

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         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.

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

Форма вопроса доступна на полной версии этой страницы.