2017-04-16 40 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; 
} 

希望這將幫你。

相關問題