【发布时间】:2018-05-23 02:22:46
【问题描述】:
我的功能有问题.. 我希望函数有两个参数.. 一个是对象数组,第二个是用户给出的代码 并进入函数运行线性搜索并检查用户的代码是否存在,如果代码存在将返回他在数组中的位置,否则返回-1...
这是我已经尝试过的:
int passwdSearch(Eidos pinPro[], int pass)
{
int i=0;
bool found;
found=false;
while(i<N && found==false)
{
if(pinPro[i].getPasswd()==pass)
{
found=true;
return i;
}
else
return -1;
i++;
}
}
如果密码存在,我希望函数返回位置,否则返回符号数-1
问题是代码只返回数组第一个元素的位置,其他4个元素函数返回-1
【问题讨论】:
-
提示:此代码永远无法到达您的
i++;。在到达那条线之前,你总是从函数中return。 -
老兄,
std::find_if -
并非所有代码路径都返回值...
-
found布尔变量完全没用。考虑删除它。