给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数

本文介绍了一种使用C语言实现两个数组交集的方法。通过qsort函数对数组进行排序,并定义了一个sort_function来比较长整型数值。最终,程序通过遍历两个已排序的数组找到共同元素并将其存入新数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include  
#include 
int sort_function( const void *a, const void *b) 
{ 
	return int(*(long *)a - *(long *)b); 
} 

long jiaoji(long *a, long alen, long *b, long blen, long *c) 
{ 
	// 如果要保留数组a, 数组b,则在a,b进行拷贝中进行下操作 
	qsort((void *)a, alen, sizeof(long), sort_function); 
	qsort((void *)b, blen, sizeof(long), sort_function); 
	long *pa = a, *pb = b, *pc =c, clen=0; 
	long *ae = a+alen, *be = b+blen; 
	while( pa < ae && pb  *pb)
			pb++; 
		else 
			pa++; 
	} 
	return clen;	
} 


void main() 
{ 
	long a[] = { 8, 7, 1,2,3, 4, 6,}; 
	long b[] = { 6,7, 1, 2 }; 
	long c[4]; 
	long clen = jiaoji(a, 7, b, 4, c); 
	long *pc = c; 
	for(long i=0; i 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值