使用 Pascal 创建方形数组
Create a square array with Pascal
我需要创建一个程序来显示一个 20 行 20 列的方阵(数组),然后给出该矩阵的最大值和最小值。
我从这段代码开始:
program ex2dimarray;
var
a: array [0..20, 0..20] of integer;
i, j: integer;
begin
for i := 0 to 3 do
for j := 0 to 3 do
a[i,j] := i * j;
for i := 0 to 3 do
begin
for j := 0 to 3 do
write(a[i,j]:2, ' ');
writeln;
end;
end.
program ex2dimarray;
var
a: array [0..20, 0..20] of integer;
m, i, j: integer;
begin
//filling the array, in any way you like
for i := 0 to 19 do
for j := 0 to 19 do
a[i,j] := i * j;
//scanning for max value
m :=0;
for i := 0 to 19 do
for j := 0 to 19 do
if m<=a[i,j] then m:=a[i,j] ;
//print the array
for i := 0 to 19 do
begin
for j := 0 to 19 do
write(a[i,j]:2, ' ');
writeln;
end;
//print the max value
writeln('Maximum is ',m);
end.
您声明了一个 20x20 的数组,但在您的代码中您只使用了一个 3x3 的块。此外,缺少查找最大值和最小值的逻辑。
您可以尝试这样的操作:
program ex2dimarray;
const
Dim = 20;
var
a: array [0..Dim, 0..Dim] of integer;
i, j, min, max: integer;
begin
// initialize the array
for i := 0 to Dim do
begin
for j := 0 to Dim do
a[i,j] := i * j;
end;
// search for max and min. You can initialize both to a[0,0]
min:= maxint;
max:= -maxint;
for i := 0 to Dim do
begin
for j := 0 to Dim do
begin
if (a[i,j] > max) then
max := a[i,j];
if (a[i,j] < min) then
min := a[i,j];
end;
end;
// print out the values
for i := 0 to Dim do
begin
for j := 0 to Dim do
write(a[i,j]:3, ' ');
writeln;
end;
writeln;
write('Max: ', max, ' Min: ', min);
writeln;
readln;
end.
我需要创建一个程序来显示一个 20 行 20 列的方阵(数组),然后给出该矩阵的最大值和最小值。
我从这段代码开始:
program ex2dimarray;
var
a: array [0..20, 0..20] of integer;
i, j: integer;
begin
for i := 0 to 3 do
for j := 0 to 3 do
a[i,j] := i * j;
for i := 0 to 3 do
begin
for j := 0 to 3 do
write(a[i,j]:2, ' ');
writeln;
end;
end.
program ex2dimarray;
var
a: array [0..20, 0..20] of integer;
m, i, j: integer;
begin
//filling the array, in any way you like
for i := 0 to 19 do
for j := 0 to 19 do
a[i,j] := i * j;
//scanning for max value
m :=0;
for i := 0 to 19 do
for j := 0 to 19 do
if m<=a[i,j] then m:=a[i,j] ;
//print the array
for i := 0 to 19 do
begin
for j := 0 to 19 do
write(a[i,j]:2, ' ');
writeln;
end;
//print the max value
writeln('Maximum is ',m);
end.
您声明了一个 20x20 的数组,但在您的代码中您只使用了一个 3x3 的块。此外,缺少查找最大值和最小值的逻辑。
您可以尝试这样的操作:
program ex2dimarray;
const
Dim = 20;
var
a: array [0..Dim, 0..Dim] of integer;
i, j, min, max: integer;
begin
// initialize the array
for i := 0 to Dim do
begin
for j := 0 to Dim do
a[i,j] := i * j;
end;
// search for max and min. You can initialize both to a[0,0]
min:= maxint;
max:= -maxint;
for i := 0 to Dim do
begin
for j := 0 to Dim do
begin
if (a[i,j] > max) then
max := a[i,j];
if (a[i,j] < min) then
min := a[i,j];
end;
end;
// print out the values
for i := 0 to Dim do
begin
for j := 0 to Dim do
write(a[i,j]:3, ' ');
writeln;
end;
writeln;
write('Max: ', max, ' Min: ', min);
writeln;
readln;
end.