// 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型"再帰バイナリ検索c
int型A [9] 引数タイプの "INT *は" 型のパラメータと互換性がありませんと言います。 int型ミッド 式が持っている必要がありますへのポインタオブジェクトタイプ
私はこのコードをコンパイルしてどのようにこのコードでは、ポインタを使用することができない理由を知りたいので、私はよくポインタのことは知りません。
配列( 'int []')は単一の 'int'と同じではないので、あなたの関数が配列を渡すときに期待したことは?値? –
引数Aの宣言を 'int * A'に変更してください –
(行番号を含むエラーメッセージの場合は、その番号を引用符に含めてください)あなたの投稿に含まれているコードの項目を参照する場合、 "backticks"を使って目立ちます: 'int A [9]'、 'int mid'v) – greybeard