C C 統計兩個陣列中不同元素的個數

2021-07-22 05:49:39 字數 2880 閱讀 7859

c/c++ 統計兩個陣列中不同元素的個數

//統計兩個陣列中不同元素的個數

//陣列中不含重複元素

#include "stdafx.h"

#include "stdio.h"

#include"stdlib.h"

#includeusing namespace std;

int match2array(int * parray1, int len1, int * parray2, int len2)

} }for (int i = 0; i < len2 - 1; i++)

}} //至此,兩個陣列都變成了有序陣列,從小到大排列

int *p1 = parray1 + len1;

int *p2 = parray2 + len2;

int num = 0;//相同元素的個數

while (parray1 < p1&&parray2 < p2)

else if (*parray1 < *parray2)

else

}return len1 + len2 - 2 * num;

}int main()

; int g[5] = ;

int size=match2array(f, 4, g, 5);

cout << size << endl;

return 0;

}//只含乙個重複元素時

#include "stdafx.h"

#include "stdio.h"

#include"stdlib.h"

#includeusing namespace std;

//統計陣列中相同元素的個數

int *renum(int *p, int size)

; for (int i = 0; i < size;i++)

return arr;

}int match2array(int * parray1, int len1, int * parray2, int len2)

} }for (int i = 0; i < len2 - 1; i++)

}} int *b, *c;

b = renum(parray1, len1);

c = renum(parray2, len2);

//至此,兩個陣列都變成了有序陣列,從小到大排列

int *p1 = parray1 + len1;

int *p2 = parray2 + len2;

int num = 0;//相同元素的個數

int f;

while (parray1 < p1&&parray2 < p2)

else if (*parray1 < *parray2)

else

}num = num+b[f]+c[f];

return len1 + len2 - num;

}int main()

; int g[6] = ;

int size=match2array(f, 5, g, 6);

/*int f[3] = ;

int g[3] = ;

int size = match2array(f, 3, g, 3);*/

cout << size << endl;

return 0;

}

//陣列中包含多個重複元素

#include "stdafx.h"

#include "stdio.h"

#include"stdlib.h"

#includeusing namespace std;

//統計陣列中相同元素的個數

int *renum(int *p, int size)

; for (int i = 0; i < size;i++)

return arr;

}int match2array(int * parray1, int len1, int * parray2, int len2)

} }for (int i = 0; i < len2 - 1; i++)

}} int *b, *c;

b = renum(parray1, len1);

c = renum(parray2, len2);

//至此,兩個陣列都變成了有序陣列,從小到大排列

int *p1 = parray1 + len1;

int *p2 = parray2 + len2;

int num = 0;//相同元素的個數

int k=0,f[10] = ;

while (parray1 < p1&&parray2 < p2)

else if (*parray1 < *parray2)

else

}for (int kk = 0; kk < sizeof(f) / sizeof(f[0]); kk++)

return len1 + len2 - num;

}int main()

; int g[6] = ;

int size=match2array(f, 5, g, 6);

/*int f[3] = ;

int g[3] = ;

int size = match2array(f, 3, g, 3);*/

cout << size << endl;

return 0;

}

備註:上面的程式在統計相同元素的個數時只考慮到了實際陣列的取值範圍是:0~9的情況,所以在renum()函式中只做這樣的處理:

int arr[10] = ;

其它的可以根據自己的需要進行調整。

篩選兩個陣列中不同的元素

在頁面中有checkbox多項選擇時,如果未選擇某一項,有時候想要獲得未選中的checkbox的值,就需要從資料庫中查詢所有的值 list 把從前端傳到後端的選中的checkbox值作為陣列t1,把從資料庫中獲得的所有的checkbox的值作為t2或list2 1.篩選陣列t2中與t1不同的元素 p...

JS取出兩個陣列中的不同或相同元素

1 取出兩個陣列的不同元素 var arr1 0,1,2,3,4,5 var arr2 0,4,6,1,3,9 function getarrdifference arr1,arr2 console.log getarrdifference arr1,arr2 輸出 4 2,5,6,9 1 conc...

JS取出兩個陣列中的不同或相同元素

取出兩個陣列的不同元素 var arr1 0 1,2 3,4 5 var arr2 0 4,6 1,3 9 function getarrdifference arr1,arr2 console.log getarrdifference arr1,arr2 輸出 4 2,5,6,9 array fi...