用c语言完成函数 size_t foo(unsigned int *a1,size_t al1,unsigned int* a2,size_t al2)其中a1 和a2 都为无符号数组,al1 和al2 为数组的长度,数组的长度为偶数.无符号数组由一对数字区间组成.如下例:a1 为 0,1,3,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 03:49:47
用c语言完成函数 size_t foo(unsigned int *a1,size_t al1,unsigned int* a2,size_t al2)其中a1 和a2 都为无符号数组,al1 和al2 为数组的长度,数组的长度为偶数.无符号数组由一对数字区间组成.如下例:a1 为 0,1,3,

用c语言完成函数 size_t foo(unsigned int *a1,size_t al1,unsigned int* a2,size_t al2)其中a1 和a2 都为无符号数组,al1 和al2 为数组的长度,数组的长度为偶数.无符号数组由一对数字区间组成.如下例:a1 为 0,1,3,
用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* a2,size_t al2)其中a1 和a2 都为无符号数组,al1 和al2 为数组的长度,数组的长度为偶数.无符号数组由一对数字区间组成.如下例:a1 为 0,1,3,
#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