1

У меня есть вопрос для вас. Мне нужно написать максимальный элемент в каждой строке. Например, мой стол:Максимальное количество в каждой строке

1 2 3 4 
5 6 7 8 
9 10 11 12 

Я хочу, чтобы получить 4,8,12 я попробовал, но никакого результата:

Program Lab2; 
type A=array[1..5,1..5] of integer; 
var x:A; 
i,j,s,max:integer; 
Begin 
writeln('Write date:'); 
for i:=1 to 5 do 
    for j:=1 to 5 do 
    read(x[i,j]); 

for i:=1 to 5 do 
    for j:=1 to 5 do 
    begin 
    max:=x[i,1]; 
    if (max<x[i,j]) then max:=x[i,j]; 
    writeln(max); 
    end; 
readln; 

Пожалуйста, помогите мне конец.

+0

Ваш WriteLn должен быть во внешнем для, то же с макс: = х [I, 1] – matys84pl

+0

Пожалуйста, более подробно – user3348229

ответ

1

Есть только три маленькие ошибки:

1) if (max<x[i,j]) должен быть вне второго цикла, потому что вы хотите инициализировать максимальное значение только один раз для каждой строки.

2) writeln(max); должен находиться за пределами второго цикла цикла, вы хотите напечатать значение только один раз в строке.

3) read(x[i,j]); Я рекомендую быть readln (x[i,j]), потому что с вами прочитать только для чтения одного символа, с ReadLn вам красные символы, пока не найдете символ новой строки, и это позволит вам вводить цифры с более чем двумя цифрами.

Это только имеет смысл, для строк, вы можете использовать read или readln с целыми числами

Также я советую вам написать ключевое слово begin в той же строке, где вы пишете структуру Contol (для, в то время как , if и т. д.), потому что таким образом он больше похож на конвенцию стиля кодирования 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. 
+0

'с чтения вы читаете только один character' - это неправильно, по крайней мере, для целых чисел. – Abelisto

+0

Вы правы, долгое время без программирования на паскале, извините –

+0

Thx sir psycho sexy – user3348229

Смежные вопросы