Миша, хочу предложить решение об организации цикла. Проверено для N=5 (четное количество строк-столбцов; нумерация - с нуля) и для N=6 (нечетное количество). Написано на Паскале - ты уж сам перегони в С и организуй поиск максимумов/минимумов. У меня просто выделяется нужная область. Исходная матрица заполнена единицами, потом для заштрихованной области единицы заменены нулями.
Код:
CONST
N=6;
VAR
A:Array[0..N,0..N] of Byte;
i,j:Byte;
BEGIN
For i:=0 to N do
For j:=0 to N do
A[i,j]:=1;
For i:=0 to N do
begin
For j:=0 to N do
Write(A[i,j]:2);
Writeln;
end;
Writeln;
For j:=0 to N div 2 do
For i:=j to N-j do
A[i,j]:=0;
For j:=(N div 2)+1 to N do
For i:=N-j to j do
A[i,j]:=0;
For i:=0 to N do
begin
For j:=0 to N do
Write(A[i,j]:2);
Writeln;
end;
Readln;
END.