Лексикографический порядок доделать паскаль pascal
|
|
По заданной перестановке из N элементов выдать 5 следующих перестановок в лексикографическом порядке.вот задание,помоги доделать плиз, она полность работает но там её надо чуть доделать,надо сделать цикл в программе и в цикле сделать сравнение чисел с предыдущим если получается что левые числа больше правых то конец программы(break) там выдаёт ошибку если например ввести три числа 3 2 1, а надо чтобы программа прекращала работать uses crt; var n,i,j,min,minj,tmp,a,k,c,p:integer; x:array[1..10]of integer; begin writeln('vvedite n'); readln(n); writeln('vvedite perestanovky x'); for i:=1 to n do read(x[i]); i:=n-1; repeat while(x[i]>=x[i+1])and(i>=0) do i:=i-1; min:=x[i+1]; minj:=i+1; for j:=i+1 to n do if (x[j]>x[i]) and (x[j] < min) then begin min:=x[j]; minj:=j; end; tmp:=x[i]; x[i]:=x[minj]; x[minj]:=tmp; for i:=i+1 to n do begin min:=x[i]; k:=i; for j:=i to n do if x[j]<min then begin min:=x[j];k:=j;end; x[k]:=x[i]; x[i]:=min; end; writeln; for i:=1 to n do write (x[i]); c:=c+1; until c=6; end.
|
|
|
Ничего не понял :D
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
надо сделать цикл, а в цикле перебор чисел, так что если левые числа будут больше правых то конец перебора(break), например если ввести 4 числа 4 3 2 1, то программа должна прекращаться, а она выводит последовательность с ошибкой
|
|
|
ответил в личку
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|