我有一点麻烦搞清楚我错了
这里是代码我试图写的说明:我有一点麻烦搞清楚我错了
考虑在方案的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,然后,如果客户和数据库引脚匹配,则将其递增。 最后,您可能不想返回大小,而是要返回计数器,该计数器现在每增加一个匹配字符就会递增一次。
是的,这是有道理的。谢谢。 – rchkrvr2
按说明你的代码应该象下面这样:
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;
}
谢谢,这工作完美。 – rchkrvr2
的问题是,你的函数超过一次尝试的回报。如果条件为真,那么你将返回指数也将试图返回在那里,如果如下其为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;
}
希望这将帮你。
你为什么认为这是错的? – JackVanier
你是如何调用这个函数的? – Kapil