#include
#include
//交集(src/des中元素必须唯一)
int JiaoJi(int *src, int slen, int *des, int dlen){
int i = 0, j = 0, t = 0;
for(i=0;i
for(j=0;j
if(src[i]==des[j]){
src[t]=des[j];
t++;
break;
}
}
}
return t;
}
//差集 (src/des中元素必须唯一)
int ChaJi(int *src, int slen, int *des, int dlen){
int i = 0, j = 0, t = 0;
for(i = 0; i < slen; i++){
for(j = 0; j < dlen ;j++){
if( src[i] == des[j]) break;
}
if(j == dlen){
src[t] = src[i];
t++;
}
}
return t;
}
//并集(src/des中元素必须唯一)
int BingJi(int *src, int slen, int *des, int dlen){
int i = 0, j = 0, t = slen;
for(i = 0; i < dlen; i++)
{
for(j = 0; j < t ;j++){
if( des[i] == src[j]) break;
}
if(j == t){
src[t] = des[i];
t++;
}
}
return t;
}
//子集(src/des中元素必须唯一)成功:非0, 失败:0
int IsZiJi(int *src, int slen, int *des, int dlen){
int i = 0, j = 0, t = 0;
for(i=0;i
for(j=0;j
if(src[i]==des[j]){
src[t]=des[j];
t++;
break;
}
}
}
if( t == dlen) return t;
return 0;
}
//和集(src/des中元素不必唯一)
int AddJi(int *src, int slen, int *des, int dlen){
int i = 0, j = 0, t = slen;
for( j = t; j < dlen; j++){
src[t] = des[j];
t++;
}
return t;
}
//减集(src/des中元素不必唯一)
int SubJi(int *src, int slen, int *des, int dlen){
int i = 0, j = 0;
for(i = 0; i < dlen; i++){
int t = 0, f = 0;
for(j = 0; j < slen;j++){
if(f == 1 || src[j] != des[i]){
src[t] = src[j];
t++;
}else{
f = 1;
}
}
slen = t;
}
return slen;
}
//约集(src/des中元素不必唯一)
//des哪些元素包含在src中(src/des元素可重复)
int YueJi(int *src, int slen, int *des, int dlen){
int i = 0, j = 0, t = 0;
for(i=0;i
for(j=t;j
if(des[i]==src[j]){
int tmp = src[t];
src[t] = src[j];
src[j] = tmp;
t++;
break;
}
}
}
return t;
}
//去重(src中元素不必唯一)
int QuChong(int *src,int slen){
int i = 0,j = 0,t = 0;
for(i=1,t= 1; i
for(j=0; j
if(src[j] == src[i])break;
}
if(j == t){
src[t]=src[i];
t++;
}
}
return t;
}
int main(){
int a[3] = {3, 4, 5 };
int b[8] = {1, 5 , 3, 3, 3, 15};
int len = YueJi(a, 3, b, 6);
printf("len[%d] ", len );
for(int i = 0; i < len; i++){
printf("%d ", a[i] );
}
return 0;
}