3 つの小さな間違いがあります。
1)if (max<x[i,j])
行ごとに 1 回だけ最大値を初期化するため、2 番目の for ループの外にある必要があります。
2) writeln(max);
2 番目の for ループの外にある必要があります。1 行に 1 回だけ値を出力します。
3) read(x[i,j]);
read では 1 文字しか読み取れませんが、 readlnreadln (x[i,j])
では改行文字が見つかるまで赤い文字が読み取られ、2 桁以上の数字を入力できるようになるため、お勧めします。
これは文字列に対してのみ意味があります。read
またはreadln
整数で使用できます
また、制御構造 (for、while、if など) を記述するのと同じ行にキーワードを記述することをお勧めします。begin
これは、最も一般的なコーディング スタイルの 1 つである C コーディング スタイルの規則により似ているからです。私は推測する。また、どの言語でも同様のコーディング スタイルを維持しようとする場合にも適しています。
したがって、コードは次のようになります。
Program Lab2;
const SIZE=3;
type A=array [1..SIZE,1..SIZE] of integer;
var x:A;
i,j,max:integer;
Begin
writeln('Write date:');
for i:=1 to SIZE do begin
for j:=1 to SIZE do begin
readln(x[i,j]);
end;
end;
for i:=1 to SIZE do begin
max:=x[i,1];
for j:=1 to SIZE do begin
if (max<x[i,j]) then begin
max:=x[i,j];
end;
end;
writeln('the max value of the row ',i ,' is ',max);
end;
readln;
readln;
end.