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

Gửi bạn nha!

Xin hay nhất ạ!

@phamngocgiahuy

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.

Câu hỏi trong lớp Xem thêm