當前位置:首頁 » 編程語言 » 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(" ");
}

熱點內容
安卓如何下載lv手游 發布:2025-05-14 10:35:45 瀏覽:383
pythondict添加key 發布:2025-05-14 10:33:59 瀏覽:381
柱子箍筋加密區長度 發布:2025-05-14 10:18:29 瀏覽:352
雲伺服器和內網穿透哪個好 發布:2025-05-14 10:16:41 瀏覽:627
安徽新能源網路配置是什麼 發布:2025-05-14 10:06:24 瀏覽:631
pinode搭建伺服器 發布:2025-05-14 10:04:23 瀏覽:4
電腦伺服器ip名稱 發布:2025-05-14 10:01:09 瀏覽:749
connectorpython 發布:2025-05-14 09:48:50 瀏覽:763
配置不好怎麼辦 發布:2025-05-14 09:46:40 瀏覽:623
數據流程圖中的數據存儲是指 發布:2025-05-14 09:46:39 瀏覽:446