一道简单的pascal题

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:06:09
N个无序的数存放在A数组中,请将相同的数删成只剩一个,
并且输出删除后形成的数列。

写出来程序体好了

谢谢大家

program es;
const n=1000;(随意变动)
var b:array[1..n]of 0..1;
i,j,q:=integer;
A:array[1..n]of integer;
begin
randomize;
q:=n;
for i:=1 to q do
A[i]:=random(q);
for i:=1 to q do
if b[A[i]]=0 then
b[i]:=1
else
begin
for j:=i to q do
A[i]:=A[i+1];
q:=q-1;
end;
for i:=1 to q do
write(A[i]);
readln;
end.
无序的话,就用随机吧!

可以用计数排序,
就是把数组开到所输入的数的最大数,
readln(t);
inc(a[t]);
然后再循环输出,
if a[i]>0 then write(i,' ');
既可以去重,也可以排序。

快排
注意输出
program qsort;
const maxn = 10000;
var
i, n : longint;
a : array[0..maxn] of longint;
procedure qsort(l, r : longint);

var i, j : longint;

x, y : longint;

begin

i := l; j := r;