"Se i è diverso da zero ed è pari o se j è diverso da zero ed è pari..."codice:if ((i&&!(i%2))||(j&&!(j%2)))
Forse ti è più chiaro scritto in questo modo:
.codice:if ((i!=0 && (i%2)==0) || (j!=0 && (j%2)==0))
"Se i è diverso da zero ed è pari o se j è diverso da zero ed è pari..."codice:if ((i&&!(i%2))||(j&&!(j%2)))
Forse ti è più chiaro scritto in questo modo:
.codice:if ((i!=0 && (i%2)==0) || (j!=0 && (j%2)==0))
Amaro C++, il gusto pieno dell'undefined behavior.