Ho un programma che a un certo punto dell'esecuzione ha due while
Per vari motivi mi serve generalizzare il confronto interno al while, utilizzando una funzione:codice:while (a[i].id<x.id) i++; while (a[j].id>x.id) j--;
Riscrivo il primo while comecodice:int confronta(int i, myStruct *a, myStruct x) { return a[i].id < x.id; }
Tutto Ok!!! Ora a rigor di logica il secondo while dovrebe essere il risultato della funzione però negato, in quanto stavolta il confronto non è minore come nella funzione ma è maggiore, quindi il risultato va negato e l'indice da passare non è più i ma j, quindi:codice:while (confronta(i, ID, a, x)) i++;
Ma così non funziona, idee???codice:while (!confronta(j, ID, a, x)) j--;