// 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