这是我尝试编写的代码的说明:
考虑计划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;
}
希望这对您有所帮助。