Viết chương trình nhập một dãy gồm N (0<N  100) số nguyên a - Chèn số nguyên K vào dãy sao cho dãy vẫn giữ được thứ tự giảm dần (không được sắp xếp lại) Dữ liệu vào: Nhập từ bàn phím 1 , a 2 , a 3 ,…,a N và một số nguyên K, mỗi số có giá trị nhỏ hơn 65000. Yêu cầu: - Xếp lại dãy đó theo thứ tự giảm dần. - Dòng đầu đọc số nguyên N. - Dòng thứ hai là các số của dãy cách nhau một khoảng trắng theo thứ tự a 1 , a 2 , a 3 ,…,a N . - Dòng thứ ba nhập số nguyên K Kết quả ra: Xuất ra màn hình - Dòng thứ nhất là dãy số được sắp xếp giảm dần. - Dòng thứ hai là dãy số được sắp xếp giảm dần đã được chèn thêm số nguyên K VD: INPUT 6 6 11 8 2 9 34 12 OUTPUT 34 11 9 8 6 2 34 12 11 9 8 6 2

1 câu trả lời

program bai3;
uses crt;
var     i,j,n,tg1,tg2,tg,k:integer;
   a:array[1..50] of integer;
BEGIN
   clrscr;
   write('n = ');readln(n);
   while (n<0) or (n>100) do
       begin
               write('nhap lai n=');readln(n);
      end;
   for i:=1 to n do
       begin
               write('a[',i,'] = ');readln(a[i]);
       end;
        tg1:=0;tg2:=0;
   for i:=1 to n-1 do
                for j:=i+1 to n do
                        if a[i]<a[j] then
              begin
                 tg:=a[i];
                 a[i]:=a[j];
                 a[j]:=tg;
              end;
       writeln('day vua sap xep: ');
      for i:=1 to n do write(a[i],' ');
        Writeln;
      Write('Nhap vao so k: '); Readln(k);
      i:=1;
      While (k>a[i]) and (i<=n) do
            i:=i+1;
      For j:=n+1 downto i do
           a[j]:=a[j-1];
           a[i]:=k;
      Writeln('Mang sau khi chen ',k,': ');
      For i:=1 to n+1 do
          Write(a[i],' ');
      Readln;
END.