по-моему у тебя не все условия покрываются., попробуй как то так сделать: var numArrayIn : array [1..3] of byte; numArrayOut : array [1..2] of byte; i, imin, temp: byte; begin readln(numArrayIn[1],numArrayIn[2],numArrayIn[3]); // не помню какой там ввод, если честно // в цикле находим минимальное четное temp := 10; for i:=1 to 3 do begin if ((numArrayIn[i] < temp) and (numArrayIn[i] mod 2 = 0)) then begin temp := numArrayIn[i]; imin := i; end; end; // -------------- temp := 1; for i:=1 to 3 do begin if (i <> imin) then begin numArrayOut[temp] := numArrayIn[i]; temp := temp + 1; end; end; if (numArrayOut[1] < numArrayOut[2]) then writeln(numArrayOut[2],numArrayOut[1],numArrayIn[imin]) else writeln(numArrayOut[1],numArrayOut[2],numArrayIn[imin]) end. синтаксис правда не помню нихера да и намудрил скорее всего и проще можно было сделать