思路:1.输入数据;2.删除重复数据;3.用快速排序重新排列。
#include<stdio.h>
#include<string.h>
void swap(int *a, int x, int y){
int tmp=a[y];
a[y]=a[x];
a[x]=tmp;
}
void sort(int *a, int left, int right){
if(left>=right){
return ;
}
int i=left;
int j=right;
int key=a[left];
while(i<j){
while(i<j && key<=a[j]){
j--;
}
swap(a,i,j);
while(i<j && key>=a[i]){
i++;
}
swap(a,i,j);
}
sort(a,left,i-1);
sort(a,i+1,right);
}
int main(){
int a[1001];
int i,j,k,n;
while(scanf("%d",&n)!=EOF){
for (i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(a[i]==a[j]){
for(k=j;k<n;k++){
a[k]=a[k+1];
}
j--;
n--;
}
}
}
sort(a,0,n-1);
for(i=0;i<n;i++){
printf("%d\n",a[i]);
}
}
return 0;
}