我在找出错误的地方时遇到了一些麻烦

时间:2017-04-16 02:16:43

标签: c++ arrays

这是我试图写的代码的说明:

考虑程序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;
}

我到底在哪里做不到?是我无限期地陷入这个循环还是别的什么?

3 个答案:

答案 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; 
}

希望这会对你有所帮助。