大家可以帮我看看吗?我是先输入第一个人的数,然后在输入第二个人的数的时候,每一个输入都在第一个人的数中搜索,有相同计数器就加1,搜索是用二分搜索..
#include <stdio.h>
double a[1000000];
void common_number();
int binsearch(double num, long m);
int main()
{
common_number();
return 0;
}
void common_number()
{
long n, m, i, count;
double num;
scanf("%ld%ld",&n,&m);
while(n--)
{
count = 0;
for(i = 0;i < m; i++)
scanf("%lf",&a[i]);
for(i = 0;i < m; i++)
{
scanf("%lf",&num);
if(binsearch(num, m)) /*找到相同的,则计数器加1*/
count++;
}
printf("%ld\n",count);
}
}
int binsearch(double num, long m)/*二分查找*/
{
long i = 0, j, mid;
j = m-1;
while(i <= j)
{
mid = (i + j)/2;
if(a[mid] == num)
return 1;
if(a[mid] < num)
i = mid + 1;
else
j = mid - 1;
}
return 0;
}