【发布时间】:2014-12-21 12:48:14
【问题描述】:
我正在学习 C++ 入门课程,之前在定义正确参数时遇到了困难,所以如果有人能指出我做错了什么,那就太好了。
这项任务是创建一个二分搜索函数,程序将在其中猜测用户正在考虑的数字。
这是我的代码:
#include <iostream>
using namespace std;
int b_search(int Arry[], int L, int R)
{
int M = 0;
char userAnswer = '-';
M = (L + R) / 2;
cout << "Is it " << Arry[M] << "? (l/h/z): ";
cin >> userAnswer;
if( (userAnswer != 'l') && (userAnswer != 'h') ) {
cout << "Thank you!" << endl;
}
else {
if (userAnswer == 'l') {
b_search(Arry[], L, M);
}
else {
b_search(Arry[], ++M, R);
}
}
return;
}
int main()
{
const int N = 100;
int A[N];
int i = 0;
int value = 1;
for(i = 0; i < N; ++i)
{
A[i] = value;
++value;
}
cout << "Choose a number from 1 to 100." << endl << endl;
cout << "Answer with:" << endl;
cout << " l - if your num is lower" << endl;
cout << "or: " << endl;
cout << " h - if your num is higher" << endl;
cout << "or: " << endl;
cout << " any other key if the guess is right." << endl << endl;
b_search(N, 1, 100)
return 0;
}
当我编译它时,第一个递归调用的第一个参数有问题。
这是来自 Code Pad 的错误消息:
In function 'int b_search(int*, int, int)':
Line 22: error: expected primary-expression before ']' token
compilation terminated due to -Wfatal-errors.
谢谢!
【问题讨论】:
标签: c++ arrays recursion binary-search dev-c++