c去除數(shù)組中的重復(fù)元素 c 如何去除一個數(shù)組中的重復(fù)數(shù)據(jù)?
c 如何去除一個數(shù)組中的重復(fù)數(shù)據(jù)?C 中怎么去掉一個數(shù)組中重復(fù)的數(shù),求高手解答?1。創(chuàng)建兩個int型數(shù)組,一個用來保存鍵盤輸入的數(shù)字,另一個用來排序2,循環(huán)3,如果相同,繼續(xù),繼續(xù)下一個4,如果不
c 如何去除一個數(shù)組中的重復(fù)數(shù)據(jù)?
C 中怎么去掉一個數(shù)組中重復(fù)的數(shù),求高手解答?
1。創(chuàng)建兩個int型數(shù)組,一個用來保存鍵盤輸入的數(shù)字,另一個用來排序
2,循環(huán)
3,如果相同,繼續(xù),繼續(xù)下一個
4,如果不相同,則進(jìn)入第二個循環(huán):將這個數(shù)字與第二個數(shù)組的數(shù)字進(jìn)行比較,如果較小,則比較下一個,如果較大,則與之交換,然后取交換的數(shù)字,比較下一個
5,第二個數(shù)組中的數(shù)字,即從大到小的數(shù)字,不重復(fù)
可以使用雙循環(huán)逐個比較元素。如果有重復(fù),可以刪除。其思路如下:1。2對于任何元素,依次將其與以前的元素進(jìn)行比較,如果存在重復(fù)的元素,則將其刪除。三。刪除操作可以將后續(xù)元素逐個向前移動,達(dá)到覆蓋當(dāng)前元素的效果。在此基礎(chǔ)上,我們可以進(jìn)行一些優(yōu)化,即不需要每次刪除元素時都將所有元素前移,而是將需要保留的元素放在“應(yīng)該”位置,這樣可以提高效率。以整數(shù)數(shù)組為例,參考代碼如下:intremove_urepeat(int*a,Intl)//對起始地址為a,長度為L的數(shù)組進(jìn)行去重,以返回值的形式返回新的長度。{inti,J,r=0//I,J是循環(huán)下標(biāo),r是重復(fù)數(shù)據(jù)消除后的元素總數(shù),初始值為0For(I=0I<li){for(J=0j<rj)//檢查是否有重復(fù)if(a[J]==a[I])breakif(J==R)//沒有重復(fù)元素a[R]=a[I]//將當(dāng)前元素放在重復(fù)數(shù)據(jù)消除數(shù)組的尾部,重復(fù)數(shù)據(jù)消除后增加總數(shù)。}Returnr//返回新的長度。}
C 刪除數(shù)組里重復(fù)數(shù)字?
#include<stdio.h>int main(){int a[]={1,2,1,7,3,2,3,4,5,8,7,6}int i int j for(i=0i<12i)for(j=0j<ij)if(a[j]==a[i])a[i]=0 for(i=0i<12i)if(a[i]!=0)Printf(%D,“,a[i])我的方法不適用于數(shù)組中有0的情況。如果數(shù)組中有0,則可以更改a[i]=0和If(a[i]!=0)到其他數(shù)組中沒有的數(shù)字
C語言問題,把一個數(shù)組中的重復(fù)元素去掉?
1/*
2想法:
3將字符串存儲在字符數(shù)組a中,設(shè)置要復(fù)制到數(shù)組B的值,并遍歷B的每個元素
4如果它與a中的每個元素相同,則B中相應(yīng)的元素設(shè)置為-1。
5個輸出元素非-1 in B.
6*/
7#-包括和ltstdio。H>
8#-包含字符串(&L)。H>
9 char a[100],B[100
]10 void del(int index,int len){
11 for(int i=0I<leni){
12 if(index==i)continue//下標(biāo)相同,即不比較同一個元素并進(jìn)入下一個循環(huán)
13 if(B[index]==a[i])B[index]=-1//使用同一個元素,設(shè)為-1
14}
15}
16 int main(){
17 gets(a)
18 memcpy(B,a,sizeof(a))//將a的元素復(fù)制到B
19 int len=strlen(a)//求a的長度
20 for(int i=0I<leni){
21 del(i,len)
22}
23 for(int i=0I<leni){//輸出B中的非1元素
24 if(B[i]!=-1){
]25 printf(%C,B[i])
26}
]27}
28返回0
29}
int elimination(int a[,int count){//刪除數(shù)組int i,J中的重復(fù)元素,K表示(I=0 I< count I){表示(J=I 1 J< count J){如果(a[J]==a[I]){表示(K=J 1 K< count K)a[K-1]=a[K]count--J--}}}返回計數(shù)}