我很难弄清楚我哪里出了问题

  • 本文关键字:问题 很难 弄清楚 c++ arrays
  • 更新时间 :
  • 英文 :


这是我尝试编写的代码的说明:

考虑计划7-21中使用的testPIN函数。为方便起见,我们在下面为您复制了代码。按如下方式修改此函数:将其类型更改为 int将其名称更改为计数匹配项使其返回相等的相应并行元素的数量

我这里有这段代码:

int countMatches(int custPIN[], int databasePIN[], int size) {
    for (int index = 0; index < size; index++) {
        if (custPIN[index] == databasePIN[index])
            return index;
    }
    return size;
}

我到底在哪些方面做不到?是我无限地陷入了这个循环还是别的什么?

根据描述,您的代码应如下所示:

int countMatches(int custPIN[], int databasePIN[], int size) 
{
    int counter =0;
    for (int index = 0; index < size; index++) {
        if (custPIN[index] == databasePIN[index])
            counter++;
    }
    return counter;
}

也许在函数的第一行中,您希望将新的计数器变量初始化为 0,然后,如果客户和数据库引脚匹配,则递增它。最后,也许您想返回计数器,而不是返回大小,现在每个匹配字符的计数器都已递增。

问题是您的函数尝试返回不止一次。如果条件为真,那么您将返回索引,但也会尝试返回大小(这是不可能的(,如果它为 false,那么它只会返回大小更改代码如下:

int countMatches(int custPIN[], int databasePIN[], int size) {
int e;
for (int index = 0; index < size; index++){ 
if (custPIN[index] == databasePIN[index]) { 
e++;
}
} 
if(e!=0)
return e; 
}

希望这对您有所帮助。

最新更新