想法是:
找一个不在数组中的数(k),如果出现重复就把重复的元素改成k,最后输出所有非k的数。
确实有一点缺陷,但大部分情况下不需要改k,如果出现了,自己改一下也不耽误事。
#include <stdio.h>
void omit(int a[],int l){
int i,j,k=10000000;
for(i=0;i<l;i++){
if(a[i]!=k){
for(j=0;j<l;j++){
if(i!=j&&a[i]==a[j])
a[i]=k;
}
}else printf("改一下k!");
}
for(i=0;i<l;i++){
if(a[i]!=k)
printf("%d ",a[i]);
}
}
void main(){
int a[]={1,1,2,7,3,2,3,4,5,8,7,4},l=sizeof(a)/sizeof(a[0]);
omit(a,l);
}