C語言去掉數(shù)組重復(fù)值 如何刪除兩個(gè)c數(shù)組中的相同元素?
如何刪除兩個(gè)c數(shù)組中的相同元素?使用雙循環(huán),依次將每個(gè)值與后面的值進(jìn)行比較。如果存在相同的元素,請(qǐng)刪除該元素。刪除時(shí),可以將以下元素依次向前移動(dòng)一位,同時(shí)將總長(zhǎng)度減少一位。參考代碼如下:intremo
如何刪除兩個(gè)c數(shù)組中的相同元素?
使用雙循環(huán),依次將每個(gè)值與后面的值進(jìn)行比較。如果存在相同的元素,請(qǐng)刪除該元素。刪除時(shí),可以將以下元素依次向前移動(dòng)一位,同時(shí)將總長(zhǎng)度減少一位。參考代碼如下:intremoveurepeat(int*a,Intl){inti,J,K for(I=0I<li){for(J=i1j<lj)//比較以下元素并刪除重復(fù)項(xiàng)。{if(a[J]==a[i])//發(fā)現(xiàn)重復(fù)元素。{for(k=J 1K<lk)//依次向前移動(dòng)一位。A[k-1]=A[k]l--//總長(zhǎng)度減1。}}}returnl//返回新的長(zhǎng)度值。}
c語言如何刪除數(shù)組中重復(fù)元素?
1/*
2想法:
3將字符串存儲(chǔ)在字符數(shù)組a中,設(shè)置要復(fù)制到數(shù)組B的值,遍歷B的每個(gè)元素
4素?cái)?shù),與a中的每個(gè)元素進(jìn)行比較,如果有相同的,則將B中的相應(yīng)元素設(shè)置為-1。
5個(gè)輸出元素非-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)相同,即不比較同一個(gè)元素并進(jìn)入下一個(gè)循環(huán)
13 if(B[index]==a[i])B[index]=-1//使用同一個(gè)元素,設(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的長(zhǎng)度
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}
您可以先對(duì)這兩個(gè)數(shù)組進(jìn)行排序,然后用合并排序的思想將它們合并,例如:
/-----------------*NC)]/*求兩個(gè)升序數(shù)組a和B的并集,返回保存并集的數(shù)組的第一個(gè)地址,并將并集的長(zhǎng)度保存到*NC,Na和Nb分別是a和B數(shù)組的元素?cái)?shù)*/{
int*C=null
int i=0,j=0,t=0
當(dāng)(I