这是我的函数合并代码:
#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++];
}
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么代码有这个错误吗?我已经用同样的错误查看了所有问题,但似乎没有针对此错误的通用答案...非常感谢!
while (i < 3) || (j < 3)
Run Code Online (Sandbox Code Playgroud)
应该:
while ((i < 3) || (j < 3))
Run Code Online (Sandbox Code Playgroud)
或(因为<优先级高于||)
while (i < 3 || j < 3)
Run Code Online (Sandbox Code Playgroud)