Отредактируйте, пожалуйста. В заданном двумерном массиве найти индексы первого элемента,...

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

Отредактируйте, пожалуйста.
В заданном двумерном массиве найти индексы первого элемента, превосходящего среднее арифметическое всех элементов.

uses crt;
var b: array[1..1000, 1..1000] of integer;
sum, kolvoel, i, j, n : integer;
srar:real;
begin
randomize;
n:=0;
writeln('Vv razmer matrici');
readln(n);
kolvoel:=sqr(n);
sum:=0;
srar:=0;
for i:=1 to n do
for j:=1 to n do
begin
b[i,j]:=random(2*20+1)-20;
end;

for i :=1 to n do {vivod matr}
begin
for j :=1 to n do
write ( b [ i, j ]:4);
writeln ;
end;

for i:=1 to n do
for j:=1 to n do
sum:=b[i,j]+sum;

srar:=sum/kolvoel;
writeln('srasr=',srar);
for i:=1 to n do
for j:=1 to n do
begin
if b[i,j]>srar then
writeln('i=',i,'j=',j);
break;
end;
end.


Информатика (654 баллов) | 50 просмотров
0

А что не устраивает?

0

Оно выводит построчно. Хотя честно, я не понял до конца, что в условии хотят. Если только первый элемент массива вообще, то я со своей программой пролетаю.

0

Чего "выводит построчно"? Если Вы не понимаете, чего хотите, как нам это понять?

0

У меня на выходе индексы пяти элементов - по одному на каждую строчку. Я не понимаю, чего хотят от меня. Но может, кто-то когда-то решал именно такое. Или не настолько пень хд

0

А надо только один? Тогда описать логическую переменную - флажок выхода, присвоить ей False. Далее, вместо циклов со счетчиком сделать циклы с постусловием. i:=1; | Repeat | j:=1; | Repeat | if b[i,j]>srar then Flag:=True else j:=j+1 | until (j>n) or Flag; | if (not Flag) then i:=i+1| unitl (i>n) or Flag; | Writeln(...) | end.

0

В тексте | - смена строки

0

И нет "противного" break, который многие преподаватели информатики органически ненавидят.

0

Спасибо!

Дан 1 ответ
0 голосов
Правильный ответ

Исправь последнюю часть и в описании переменных добавь 2 дополнительных переменных а1 и а2.
...
sum, kolvoel, i, j, n, a1, a2 : integer;
...
srar:=sum/kolvoel;
writeln('srasr=',srar);
for i:=n downto 1 do
for j:=n downto 1 do
if b[i,j]>srar then begin a1:=i; a2:=j; end;
writeln('i=',a1,' j=',a2);
end.

(8.8k баллов)