问题描述】将数组中的重复元素清除,只保留一个元素,并将数据按照从大到小的顺序排序。
【输入形式】
两行整数,第一行整数为第二行元素数量。
【输出形式】
从高到低排序的数据。
【样例输入】
11
4 1 2 3 1 2 3 1 2 3 4
【样例输出】
4 3 2 1
#include<stdio.h>
int main()
{
int n,i,j,step,sum=0;
scanf("%d",&n);
int a[n];
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]&&a[i]!=0)
{
a[j]=0;
sum++;
}
}
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
step=a[i];
a[i]=a[j];
a[j]=step;
}
}
}
for(i=0;i<n;i++)
{
if(a[i]==0)
{
continue;
}
printf("%d ",a[i]);
}
}