这里是我的功能合并代码: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