// RecursiveBinarySearch.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#define N 9
int RecursiveBinarySearch(int A, int low, int high, int x);
int main()
{
int A[N];
int index = 0;
//Put
A[0] = 2;
A[1] = 6;
A[2] = 13;
A[3] = 21;
A[4] = 36;
A[5] = 47;
A[6] = 63;
A[7] = 81;
A[8] = 97;
printf("Elements in Array A\n");
while (index <= 8) {
printf("%d ", A[index]);
index++;
}
printf("\nLocation(index) of element 63\n");
printf("%d", RecursiveBinarySearch(A, 0, 8, 63));
return 0;
}
int RecursiveBinarySearch(int A, int low, int high, int x) {
//Base Condition
if (low > high)
return -1;
int mid = low + (high - low)/2;
if (x == A[mid])
return mid;
else if (x < A[mid])
return RecursiveBinarySearch(A, low, mid - 1, x);
else
return RecursiveBinarySearch(A, mid + 1, high, x);
}
这是第一个问题。 Visual Studio中说 INT A [9] 参数类型是 “int *” 是类型为 “INT”递归二进制搜索c
这里的第二个问题的参数不兼容。 int mid 表达式必须有指针对象类型
我不太了解指针,所以我想知道为什么这段代码无法编译以及如何在此代码中使用指针。
请花时间阅读关于C的一本好书。数组(int []')与单个int不一样,所以当你传递一个数组的时候你期望什么,你的函数只需要一个值? –
将参数A的声明更改为'int * A' –
(包含行号的错误消息时,请在报价单中包含该数字。当您提及包含在您的文章中的代码中的项目时,如果您制作它们更容易阅读使用“反引号”脱颖而出:'int A [9]','int mid'v) – greybeard