C语言编程序:要求任给一个一维数组,其中重复的元素只保留一个,然后把互不重复的按照升序排列!

如题所述

改了一下顺序,先排列,后删除重复的元素

# include <stdio.h>
void sort(int a[],int n);
int del(int a[],int n);
main()
{
int a[1000],i,n;

printf("How many numbers:");
scanf("%d",&n);

printf("input %d numbers:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

sort(a,n);

n=del(a,n);

printf("The sorted numbers:\n");

for(i=0;i<n;i++)
printf("%d ",a[i]);

printf("\n");
}

void sort(int a[],int n)
{
int i,j;
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(a[i]>a[i+1])
{
a[i]=a[i]+a[i+1];
a[i+1]=a[i]-a[i+1];
a[i]=a[i]-a[i+1];
}
}

int del(int a[],int n)
{
int i,j;
for(i=0;i<n-1;++i)
{
if(a[i]==a[i+1])
{
for(j=i+1;j<n-1;++j)
a[j]=a[j+1];
--n;
}
}
return n;
}
温馨提示:答案为网友推荐,仅供参考
相似回答