Câu trả lời:
uses crt;
var a:array[1..100,1..100] of integer;
n:byte;So:integer;
procedure xuat();
var i,j:byte;Tong:integer;
begin
for i:=1 to n do
begin
Tong:=0;
for j:=1 to n do
begin
Tong:=Tong+a[i,j];
write(a[i,j]:4);
end;
writeln{(' = ',Tong) };
end;
{writeln; }
end;
procedure Dienso();
var i,j:byte;
begin
i:=(n div 2)+1;j:=(n div 2)+2; so:=1;a[i,j]:=so;
repeat
if So mod n=0 then
begin
inc(so); j:=j+2; if j>n then j:=j-n; a[i,j]:=so;
end else
begin
dec(i);inc(j);inc(So);
if i=0 then
begin
i:=n;
if j>n then j:=1;
a[i,j]:=So;
end
else if j>n then
begin
j:=1;
a[i,j]:=So;
end
else a[i,j]:=So;
end;
until so=n*n;
end;
begin clrscr;
repeat
readln(n);
until odd(n);
if n=1 then write(1)
else
begin
Dienso;
xuat;
end;
readln
end.
Tac gia mnhaohiep :333
{Mình chỉ nhập n. Không mở file đóng file}