#include <stdio.h>
int numbers[1000001] = {0};
int i,j;
int m;
int left, right, mid;
int n, k;
int **BinarySearch(int *numbers[i], int m);
int main() {
// 反复读入数字和查找数字的数量
while (scanf("%d %d", &n, &k) != EOF) {
// 读入给定的数字
for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
for (j = 0; j < k; j++) {
// 读入待查找的数字,
scanf("%d", &m);
printf("%d", **BinarySearch(numbers[i], m));
}
}
}
int **BinarySearch(int *numbers[i], int m)
{
left = 0, right = k - 1;
while (left <= right)
{
mid = (left + right) / 2;
if (numbers[mid] == m)
{
printf("%d", m);
if (j < k)
printf(" ");
}
if (numbers[mid] < m)
{
left = mid + 1;
}
if (numbers[mid] > m)
{
right = mid - 1;
}
printf("0");
}/*while*/
return -1;
}/*function binarysearch*/
错误提示:
段错误,也就是segmentfault, 可能您的代码出现栈溢出或非法指针访问。