sắp xếp các số chính phương trong mảng theo thứ tự tăng dần - làm bằng pascal - ko sao chép mạng

1 câu trả lời

uses crt;
var n,i,j,t:longint; a:array[1..1000000]of longint; 
begin 
clrscr;
   write('Nhap so phan tu: ');readln(n);
   for i:=1 to n do 
      begin
         write('Nhap phan tu thu ',i,': ');readln(a[i]); 
         for j:=1 to i-1 do 
            if (sqrt(a[i])=trunc(sqrt(a[i])))and(sqrt(a[j])=trunc(sqrt(a[j])))and(a[i]<a[j]) then
                  begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end;
      end;
   for i:=1 to n do write(a[i],' ');   
readln
end.

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