Pc-basic ошибка к коде, помогите ее решить!

Здравствуйте, нужна помощь в доработке кода.
10 Input K
20 DIM S(K)
30 max = S(1)
40 min = S(1)
50 FOR I = 1 TO K
60 Input S(I)
70 IF S(I) > max THEN max = S(I)
80 IF S(I) < min THEN min = S(I)
90 NEXT I
100 PRINT "Max: "; max
110 PRINT "Min: "; min
120 END
Да, программа древняя, но в школе дают по ней задачи. С max всё окей, а вот с min проблемы. Например, ввожу числа 5,7,4,2,3,4. Программа должна выдавать, что min это 2, но почему-то выдает, что 0.

Ошибка в порядке выполнения операторов. В строке 40 сначала считывается значение 0 из элемента массива S(1) и только позднее, в строке 60 массив заполняется числами. Надо сделать два цикла - отдельно для ввода, отдельно для проверок (вместо одного общего цикла ввода и проверок). И цикл ввода поместить перед строкой 30.

Ну или отдельно первый элемент массива считать:

10 Input K
20 DIM S(K)
25 Input S(1)
30 max = S(1)
40 min = S(1)
50 FOR I = 2 TO K
60 Input S(I)
70 IF S(I) > max THEN max = S(I)
80 IF S(I) < min THEN min = S(I)
90 NEXT I
100 PRINT "Max: "; max
110 PRINT "Min: "; min
120 END

1 лайк