Var
a,b:array[1..100,1..100] of byte;
n,i,j,x,y,z: byte;
k,s,sa:integer;
begin
write('введите размер поля N: ');
readln(n);
writeln('введите массив:');
for i:=1 to n do begin
for j:=1 to n do begin
read (a[i,j]);
end;
end;
b:=a;
k:=0;
s:=0;
for i:=1 to n do begin
for j:=1 to n do begin
s:=s+a[i,j];
if b[i,j]=1 then begin
k:=k+1;
x:=i; y:=j;
while b[x,y]=1 do begin
z:=0;
while b[x,y]=1 do begin
b[x,y]:=2; z:=z+1;
y:=y+1;
end;
x:=x+1; y:=y-z;
end;
end;
end;
end;
sa:=Floor(s/k);
writeln ('Количество кораблей = ',k);
writeln ('Средний размер кораблей = ',sa);
end.
-----------------------------------------
Пример:
введите размер поля N: 7
введите массив:
0 0 0 0 0 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 0 0 0 0 0
0 1 0 1 1 0 0
0 1 0 1 1 0 0
0 0 0 0 0 0 0
Количество кораблей = 3
Средний размер кораблей = 4