C++ 对象c+数组的线性搜索+;

C++ 对象c+数组的线性搜索+;,c++,arrays,object,search,C++,Arrays,Object,Search,我对一个函数有问题。。 我希望函数有两个参数。。 一个是对象数组,第二个是用户给定的代码 并进入函数运行线性搜索,检查用户的代码是否存在,如果代码存在,将返回其在数组中的位置,否则返回-1 这是我已经尝试过的: int passwdSearch(Eidos pinPro[], int pass) { int i=0; bool found; found=false; while(i<N && found==false) { if(pinPro[i].getPassw

我对一个函数有问题。。 我希望函数有两个参数。。 一个是对象数组,第二个是用户给定的代码 并进入函数运行线性搜索,检查用户的代码是否存在,如果代码存在,将返回其在数组中的位置,否则返回-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++;

}
int-passwdSearch(Eidos-pinPro[],int-pass)
{
int i=0;
布尔发现;
发现=错误;

while(i如果元素不是数组中的第一个元素,则始终激活else。您应该删除它,然后在while之后返回-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;
        }
    }
    return -1;
}
int-passwdSearch(Eidos-pinPro[],int-pass)
{
int i=0;
布尔发现;
发现=错误;

while(i如果元素不是数组中的第一个元素,则始终激活else。您应该删除它,然后在while之后返回-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;
        }
    }
    return -1;
}
int-passwdSearch(Eidos-pinPro[],int-pass)
{
int i=0;
布尔发现;
发现=错误;
而(i试试这个:

int passwdSearch(Eidos pinPro[], int pass)
{
    for(int i=0; i<N; i++)
    {
        if(pinPro[i].getPasswd()==pass)
            return i;
    }
    return -1;
}
int-passwdSearch(Eidos-pinPro[],int-pass)
{
对于(int i=0;i请尝试以下方法:

int passwdSearch(Eidos pinPro[], int pass)
{
    for(int i=0; i<N; i++)
    {
        if(pinPro[i].getPasswd()==pass)
            return i;
    }
    return -1;
}
int-passwdSearch(Eidos-pinPro[],int-pass)
{

对于(int i=0;i请尝试此代码

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
       i++;
   }
  return -1;
}
int-passwdSearch(Eidos-pinPro[],int-pass)
{
int i=0;
布尔发现;
发现=错误;

而(i请尝试此代码

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
       i++;
   }
  return -1;
}
int-passwdSearch(Eidos-pinPro[],int-pass)
{
int i=0;
布尔发现;
发现=错误;

虽然(iHint:This code永远无法到达你的
i++;
。你总是
在到达那一行之前从函数返回
。dude,
std::find_如果不是所有的代码路径都返回一个值,
found
布尔变量是完全无用的。请考虑删除它。提示:此代码永远无法到达你的
i++;
。)始终在到达该行之前从函数中返回
return
。dude,
std::find_如果
不是所有的代码路径都返回一个值,
found
布尔变量是完全无用的。请考虑将其删除。
found=true;
在从下一行的函数返回时是不必要的。@nathanOliver true,我只是快速更改了它让它工作,我会编辑,谢谢。错过<代码> I++<代码>。还要注意,这是C++,你可以使用for循环<代码>(int i=0;i < n;i++)。<代码> >发现=真;在下一行的函数返回时是不必要的。@ NaNaOLIVER TRUE,我只是快速地更改它,使其工作,不好编辑,谢谢。丢失代码> I++<代码>。还注意到,这是C++,可以使用for for循环<代码>(int i=0;i < n;i++)<代码>漂亮清理。那里有很好的清理。