这是我试图写的代码的说明:
考虑程序7-21中使用的testPIN函数。为方便起见,我们在下面为您复制了代码。修改此功能如下: 将其类型更改为int 将其名称更改为countMATCHES 使其返回相等的相应并行元素的数量
我这里有这个代码:
int countMatches(int custPIN[], int databasePIN[], int size) {
for (int index = 0; index < size; index++) {
if (custPIN[index] == databasePIN[index])
return index;
}
return size;
}
我到底在哪里做不到?是我无限期地陷入这个循环还是别的什么?
答案 0 :(得分:1)
根据说明,您的代码应如下所示:
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;
}
答案 1 :(得分:0)
也许在函数的第一行中,您要将新的计数器变量初始化为0,然后,如果客户和数据库引脚匹配,则递增它。 最后,您可能希望返回计数器,而不是返回大小,现在每个匹配字符的计数器都会递增。
答案 2 :(得分:0)
问题是你的函数尝试多次返回。如果条件为真,那么你将返回索引,但也会尝试返回大小(这是不可能的),如果它是假的那么它只会返回大小 更改代码如下:
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;
}
希望这会对你有所帮助。