Нужна . найти ошибки - паскаль. условие: дан одномерный массив, состоящий из вещественных элементов. найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. не совсем то выводит, и модуль может как-то через abs надо. program proizvedenie; var q,z,w,i,n,i1,i2: integer; a: array[1..1000] of real; amin,amax,pr: real; begin assign (input,'input.txt'); assign (output,'output.txt'); reset (input); rewrite (output); readln(n); for i: =1 to n do read (a[i]); amin: =a[1]; for i: =1 to n do begin if a[i] amax then amax: =a[i]; i2: =i; end; if i2> i1 then begin q: =i1; w: =i2; end else begin q: =i2; w: =i1; end; if (w-q)> 1 then begin pr: =1; for z: =q to w do pr: =pr*a[z]; end else write (0); close (input); close (output); end.

taush taush    3   26.05.2019 19:20    2

Ответы
Denis577 Denis577  23.06.2020 08:15
Не гарантирую, что нет иных ошибок, но:
for z:=q to w do
pr:=pr*a[z];
в этом случае перемножаются максимальный и минимальные элемент тоже. нужно
for z:=q + 1 to w - 1 do
pr:=pr*a[z];

и, да, нужно с модулем
if abs(a[i])<abs(amin) then
begin
amin:=a[i];

if abs(a[i]) > abs(amax) then
а здесь где begin???
amax:=a[i];
i2:=i;

и где вывод ответа?
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика