Ho un programma che a un certo punto dell'esecuzione ha due while
codice:
while (a[i].id<x.id) i++;
while (a[j].id>x.id) j--;
Per vari motivi mi serve generalizzare il confronto interno al while, utilizzando una funzione:
codice:
int confronta(int i, myStruct *a, myStruct x)
{
return a[i].id < x.id;
}
Riscrivo il primo while come
codice:
while (confronta(i, ID, a, x)) i++;
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(j, ID, a, x)) j--;
Ma così non funziona, idee???