int fun(int *a,int n) //数组名 和 数组长度
{
int i,j,k;
for(i=k=1;i
for(j=0;j
if(a[j]==a[i]) //查找a中与a[i]相等的最左边数的坐标,即j
break;
}
if(j==k) //如果j==k即是说第k个元素之前没有和a[i]相等的,即a[i]是新元素
{
a[k]=a[i]; //把a[i]添加到无重复的最后边,a[k]位置
k++; //实际无重复数组长度+1
}
}
return k; //返回新数组的长度
}
k的意思是前k个元素是不重复的,当发现a[i]与前k个元素都不同,则插入到k的位置,k+1
慢慢分析吧