Cho một dãy số nguyên dương gồm N số .Viết chương trình nhập từ bàn phím số tự nhiên N, M và dãy N số. Hãy cho biết giá trị của số ở vị trí thứ M (M<N) trong dãy số sau khi được sắp xếp theo thứ tự tăng dần và vị trí của số thứ M trong dãy trước khi sắp hiện nằm ở vị trí E nào trong dãy đã được sắp xếp. Kết quả được xuất ra có cấu trúc như sau: - Hàng thứ nhất là số N và M; - Hàng thứ hai là dãy gồm N số trước khi được sắp thứ tự; - Hàng thứ ba là dãy N số sau khi sắp thứ tự; - Hàng thứ tư là giá trị của số ở vị trí thứ M trong dãy số sau khi sắp xếp; - Hàng thứ năm là vị trí thứ E trong dãy đã được sắp xếp của số ở vị trí thứ M trong dãy chưa xếp. Ví dụ: 6 3 8 20 5 3 7 9 3 5 7 8 9 20 7 2 Giải thích: N=6 là dãy có 6 số và M=3 là vị trí thứ 3; 8 20 5 3 7 9 là 6 số theo thứ tự đã được nhập (trước khi sắp); 3 5 7 8 9 20 là 6 số sau khi sắp thứ tự; Số 7 ở hàng thứ tư là giá trị của số ở vị trí thứ M=3 sau khi sắp thứ tự; Số 2 ở hàng thứ năm chỉ vị trí số thứ M=3 trong dãy trước khi sắp xếp (là số 5), nay đã được xếp ở vị trí thứ 2 trong dãy sắp xếp theo thứ tự tăng dần CODE PASCAL Ạ
2 câu trả lời
uses crt;
var i,j,n,m,t,p:longint;
a:array[0..1000000] of longint;
begin
clrscr;
readln(n,m);
write(n,' ',m);
for i:=1 to n do read(a[i]);
for i:=1 to n do write(a[i],' ');writeln;
p:=a[m];
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
for i:=1 to n do write(a[i],' ');writeln;
writeln(a[m]);
for i:=1 to n do
if a[i] = p then write(i,' ');
readln;
end.