当前位置:首页 » 编程语言 » 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(" ");
}

热点内容
中国十大解压电影 发布:2025-04-23 06:13:07 浏览:582
产品直播脚本范文例子 发布:2025-04-23 06:10:24 浏览:312
安卓id加密 发布:2025-04-23 06:10:23 浏览:388
python行内if 发布:2025-04-23 06:10:20 浏览:219
ubuntu编译32位程序 发布:2025-04-23 06:10:20 浏览:959
什么在资源配置中起宏观调控作用 发布:2025-04-23 06:05:25 浏览:723
换手机怎么把安卓app移到苹果手机 发布:2025-04-23 06:05:20 浏览:899
java的时间格式 发布:2025-04-23 06:04:39 浏览:975
美团安卓哪里再次配送 发布:2025-04-23 05:56:07 浏览:978
油画价格算法 发布:2025-04-23 05:54:37 浏览:532