Erreur C: expression attendue avant ‘||’ jeton

Voici mon code pour la fonction merge:

#include  #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++]; } } 

Pourriez-vous me dire pourquoi le code a cette erreur? J’ai regardé toutes les questions avec la même erreur, mais il semble qu’il n’y ait pas eu de réponse universelle à cette erreur … Merci beaucoup!

Englobe la condition complète entre parenthèses:

 while ((i < 3) || (j < 3)) 

Vous pouvez aussi utiliser:

 while (i < 3 || j < 3) 

Et soyez prudent avec:

 if (i < n1) && (j < n2) 

qui peut être:

 if (i < n1 && j < n2) 
 while (i < 3) || (j < 3) 

devrait être:

 while ((i < 3) || (j < 3)) 

ou (parce que < a une priorité plus élevée que || )

 while (i < 3 || j < 3) 
 while (i < 3) || (j < 3) 

devrait être

 while ((i < 3) || (j < 3)) 

pareil pour

 if (i < n1) && (j < n2)