作业帮 > 综合 > 作业

用c语言完成函数 size_t foo(unsigned int *a1,size_t al1,unsigned int

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 16:39:24
用c语言完成函数 size_t foo(unsigned int *a1,size_t al1,unsigned int* a2,size_t al2)
其中a1 和a2 都为无符号数组,al1 和al2 为数组的长度,数组的长度为偶数.
无符号数组由一对数字区间组成.如下例:
a1 为 0,1,3,6,10,20
a2 为 0,1,20,50,4,5
则 a1 表示以下区间[0,1] [3,6] [10,20]
a2 表示以下区间[0,1] [20,50] [4,5]
则a1,a2 的重叠部分为[0,1] [4,5],其长度为2
函数foo 要求返回重叠区间的长度.上例中为2.
用c语言完成函数 size_t foo(unsigned int *a1,size_t al1,unsigned int
#include
#include
int Cmp(const void * v1,const void *v2)
{
\x05return *(unsigned int *)v1 > *(unsigned int *)v2;
}
size_t foo(unsigned int *a1,size_t al1,unsigned int* a2,size_t al2)
{
\x05qsort(a1,al1,sizeof(unsigned int),Cmp);
\x05qsort(a2,al2,sizeof(unsigned int),Cmp);
\x05size_t counter1 = 0,counter2 = 0;
\x05size_t length = 0;
\x05while (2 * counter1
再问: qsort(a1, al1, sizeof(unsigned int), Cmp); 这个啥啊,有啥作用啊 还有2 * counter1,乘个2是什么意思
再答: qsort是排序的,你可以google下,counter是每次前进两个数,也就是一个区间。。。