profile
Опубликовано 5 лет назад по предмету Информатика от haidar40

найдите сдесь ошибку и напишите в исправном виде пожалуйста учитель сказал что там ошибка есть var j,i,min,k,t:integer;
a:array [1..100] of integer;
begin a[1]:=5;a[2]:=4;a[3]:=7;a[4]:=2;a[5]:=9;a[6]:=6;
for j:=1 to 6 do
begin
min:=a[j];
for i:=j to 6 do
if min>a[i] then begin
min:=a[i];t:=i
end;
k:=a[j];a[j]:=min ;a[t]:=k;
write(j,')');
for i:=1 to 6 do
write(a[i],';');
writeln;
end;
end.

  1. Ответ
    Ответ дан srzontmp
    Во первых, второй из вложенных циклов for i:=j to 6  заменить  на for i:=j+1 to 6;  во вторых, переменная t не инициализируется перед входом в цикл по i ,  и берется ее предыдущее значение
    если на месте j уже стоит наименьшее число, поэтому, в строках for j:=1 to 6 do
    begin
    min:=a[j]; добавить  после min:=a[j]; t:=j;  после этого будет массив сортироваться по возрастанию.