2017-04-16 96 views
0

这里是代码我试图写的说明:我有一点麻烦搞清楚我错了

考虑在方案的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

你为什么认为这是错的? – JackVanier

+0

你是如何调用这个函数的? – Kapil

回答

0

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

+0

是的,这是有道理的。谢谢。 – rchkrvr2

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; 
} 
+0

谢谢,这工作完美。 – rchkrvr2

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

希望这将帮你。

相关问题