這裏是我的功能合併代碼:C錯誤:'||'之前的預期表達式令牌
#include <stdio.h>
#include "merge.h"
void merge(
char a1[], int n1,
char a2[], int n2,
char output[])
{
int i = 0;
int j = 0;
int z = 0;
while (i < n1) || (j < n2) // This is where the error happends
{
if (i < n1) && (j < n2)
if (a1[i] <= a2[j])
output[z++] = a1[i++];
else
output[z++] = a2[j++];
else if (j == n2)
while (i < n1)
output[z++] = a1[i++];
else if (i == n1)
while (j < n2)
output[z++] = a2[j++];
}
}
你能告訴我爲什麼代碼中有這個錯誤?我已經看過所有與此相同的錯誤的問題,但它似乎沒有普遍的答案這個錯誤... 非常感謝!
海,只是一個註釋:請注意括號內的變量增量:[z ++]。你應該在使用output [z]的時候知道[z ++],然後增加它,而[++ z]將首先增加<然後輸出[z],所以在最後一種情況下,z在訪問輸出之前會增加。 – 2014-10-03 08:05:04
嗨Didac,我試圖將兩個數組a1和a2合併到數組輸出中。因此,每次輸出[z]得到一個值時,z都會增加,這樣輸出[z + 1]也可以得到一個值。你的意思是我應該注意的事實是,即使在我將a1和a2中的所有元素合併爲輸出後,z仍會增加?這真的很重要嗎?因爲即使z仍然增加1,這次輸出[z]將不會被賦值,因爲a1和a2中的所有元素已經被合併。謝謝! – viethaihp291 2014-10-03 21:30:40