ПАСКАЛЬ!!!создать массив 5х6 целых чисел из диапазона [1;10] вывести его ** экран. Найти...

0 голосов
86 просмотров

ПАСКАЛЬ!!!
создать массив 5х6 целых чисел из диапазона [1;10] вывести его на экран. Найти количество и произведение нечетных элементов последней строки
Вот код программы, где ошибка?!
program p1;
uses crt;
const n=5; m=6;
var a:array [1..n,1..m] of integer;
i,j,p,k: integer;
begin
randomize;
clrscr;
writeln('Данный массив');
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(10)+1;
write(a[i,j]:4);
end;
writeln;
end;
p:=1;
writeln('Полученный массив');
for i:=1 to n do begin
if a[5,j] mod 2=1 then p:=p*a[5,j];
inc(k);
writeln('Произведение = ',p);
writeln('Колличество =',k);
readln;
end;
end.



Информатика (43 баллов) | 86 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Измени вот этот фрагмент следующим образом:
writeln('Полученный массив');
for j:=1 to m do
  begin
  if a[5,j] mod 2=1 then
    begin
    p:=p*a[5,j];
    inc(k);
    end;
  end;
writeln('Произведение = ',p);
writeln('Количество =',k);

Все будет работать как надо.

0

блин. вот я тормоз ахах спасибо;)

0

Да все, бывает, тормозят на ровном месте))))

0

а как сделать чтобы полученный массив выводился не в строчку а как нормальный массив? (начало той же программы. вывод всех четных)
writeln('ïполученный массив');
for i:=1 to n do begin
for j:=1 to m do begin
if a[i,j] mod 2=0 then
write(a[i,j]:4); end; end;
readln;
end.

0

for i:=1 to n do begin
for j:=1 to m do begin
if a[i,j] mod 2=0 then
write(a[i,j]:4); end; end;
readln;
end.

0

Блин, случайно ввод нажал.

0

for i:=1 to n do
begin
for j:=1 to m do
if a[i,j] mod 2=0 then write(a[i,j]:4);
writeln;
end;

0

Это до readln;

0

спасибо)

0 голосов

Как минимум тут:
for i:=1 to n do begin
if a[5,j] mod 2=1 then p:=p*a[5,j];
в цикле счетчик I, а массив проверяет по j

(494 баллов)