дан целочисленный массив А [n].Определить произведение элементов массива с k1 по k2 (k2>k1)

Ответы

Ответ дал: srzontmp
0
const m=200;
var a: array[1..m] of integer;
    i,k1,k2,p,n: integer;
begin
   write('количество элементов массива:  ');
   readln(n);
   randomize;
   write('массив:  ');
   for i:=1 to n do
   begin
     a[i]:=random(-40,40);
     write(a[i],' ');
   end;
   writeln;
   write('k1 k2 через пробел: ');  readln(k1,k2);
   p:=1;
   if (k1 in [1..n]) and (k2 in [1..n]) and (k2>k1) then 
   begin
     for i:=k1 to k2 do p:=p*a[i];
     writeln('произведение: ',p);
   end
   else writeln('недопустимые значения k1 и k2  ',k1,' ',k2);  
end.   

количество элементов массива:  10
массив:  18 -40 5 -5 -22 -1 -3 22 -11 37 
k1 k2 через пробел: 3 5
произведение: 550




Ответ дал: Аноним
0
Увы, но Ваша программа безбожно врет для произведения, превышающего примерно 10^9. Вот пример:
Ответ дал: Аноним
0
количество элементов массива: 50
массив: -16 35 12 -22 -3 -21 -25 -30 -22 -24 20 -8 28 -14 -30 3 39 -39 -39 37 18 -13 3 15 -24 -33 -38 15 34 -19 11 11 0 24 -23 36 10 -14 -24 15 -28 18 -23 19 1 30 19 -1 -3 11
k1 k2 через пробел: 2 30
произведение: 1031798784

На самом деле получается 140324246854047585932698032537600000000
Ответ дал: Аноним
0
Если Ваша программа не рассчитана на такие большие числа, зачем было закладывать размерность массива до 200 ?
Вас заинтересует