失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 删除数组中重复元素(C语言)

删除数组中重复元素(C语言)

时间:2018-11-15 09:24:55

相关推荐

删除数组中重复元素(C语言)

编写函数,删除数组中所有的重复元素,使数组变成一个集合,函数返回集合中元素的个数。

书上习题

#include<stdio.h>int set(int a[],int n){int i,j,k;for(i=0;i<n;++i)//每次以a[i]为比较标准{j=i+1;k=i+1;while(j<=9){if(a[j]==a[i]){j++;n--;//每次删除(前移)数组的长度(n)减1}else{a[k]=a[j];k++;j++;}}}return n;}int main(){int a[10];int i;for(i=0;i<10;++i){scanf("%d",&a[i]);}set(a,10);int m=set(a,10);for(i=0;i<m;++i){printf("%d ",a[i]);}printf("\n");printf("%d",m);return 0;}/*33 4 4 3 5 3 22 5 6 8*/测试用例

运行结果

如果按常规方法,应该是每次发现相同的字符,后面所有的字符都需前移,按这种删除数据的快速算法,每次只需有一个字符前移。

可对照该图删除空格的思路进行理解。

如果觉得《删除数组中重复元素(C语言)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。