当前位置:首页 » 编程语言 » c语言删除重复元素

c语言删除重复元素

发布时间: 2023-06-27 08:03:07

A. c语言排序后删除数组中重复的数字再排序输出

#include<stdio.h>

#include<string.h>

#defineSIZE81

voiddelete_repeat(char*str);

voidbubble_sort(char*str);

intmain()

{

charstr[SIZE];

gets(str);

delete_repeat(str);

bubble_sort(str);

puts(str);

return0;

}

//删除重复字符

voiddelete_repeat(char*str)

{

/**判断数组内第i个字符是否与前i-1个字符存在重复:

若重复,删除该字符,i之后的字符下标均减1,后重新判断新的第i个字符

若不重复,不做处理,继续遍历下一个

*/

for(inti=1;str[i]!='';i++){

for(intj=0;j<i;j++)

{

if(str[i]==str[j])

{

for(intk=i;k<strlen(str)-1;k++)

{

str[k]=str[k+1];

}

str[strlen(str)-1]='';

i--;

}

}

}

}

//冒泡排序

voidbubble_sort(char*str)

{

intswap;

chartemp;

intk=strlen(str);

do{

swap=0;

for(inti=0;i<k-1;i++){

if(str[i]>str[i+1])

{

swap=1;

temp=str[i];

str[i]=str[i+1];

str[i+1]=temp;

}

}

k--;

}while(k>0&&swap);

}

(1)c语言删除重复元素扩展阅读

删除排序数组中的重复项注意事项

不要使用额外的数组空间,必须在原地修改输入数组并在使用O(1)额外空间的条件下完成,意味着不能通过新建数组存放的方式解决。

可以考虑增加一个游标的方式(命名为:index),遍历整个数组,当遇到前一个和后一个不相等的时候就给游标自增,这样的话对于相同的元素可以直接跳过不统计,最后返回”游标的大小+1“(也即不重复的元素的个数)。

B. c语言有n个整数,去除其中重复的数字

#include<stdio.h>
#defineM1024
voidmain(){inti,j,n,nn,a[M],b;
scanf("%d",&n);if(n>M)n=M;
for(i=0;i<n;i++)scanf("%d",&a[i]);
for(i=nn=1;i<n;i++){
for(j=b=0;j<nn;j++)if(a[i]==a[j]){b=1;break;}
if(b==0){a[nn]=a[i];nn++;}
}
for(i=0;i<nn;i++)printf("%d",a[i]);printf(" ");
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:705
制作脚本网站 发布:2025-10-20 08:17:34 浏览:969
python中的init方法 发布:2025-10-20 08:17:33 浏览:677
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:830
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:738
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1077
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:309
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:189
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:875
python股票数据获取 发布:2025-10-20 07:39:44 浏览:831