这是提示 -
searchForAccount() - 此方法应该使用一个参数:一个字符数组,其中包含要搜索的CreditAccount的帐号代码(searchNumber)。该方法应返回一个整数。
此方法的逻辑是排序列表策略的二进制搜索的变体。
像往常一样,您需要使用strcmp()来执行帐号的比较。
我不确定我要求做的是说实话。我来自Java,教师将其描述为thisString.Compareto(anotherString),返回-1,0,1。
这是我的尝试
int AccountDB::searchForAccount(char searchNum[])
{
int low = 0;
int high = numAccounts - 1;
int mid;
while (low <= high)
{
mid = (low + high) / 2;
if(strcmp(searchNum, accSet[mid].getAccountNumber()) == 0)
return mid;
}
if(strcmp(searchNum, accSet[mid].getAccountNumber()) > 0)
high = mid - 1;
else
low = mid + 1;
return -1;
}
这看起来是否正确?