@Oregon
Sì, Oregon, la mia richiesta non intendeva essere un suggerimento, bensì il chiarimento di un dubbio che mi è venuto leggendo le tue risposte precedent. Mi son chiesto: "ma perché segue una strada tortuosa?". Non ho pensato che lo facessi per evitare memcmp() in quanto argomento più avanzato, bensì perché per qualche ragione non si poteva proprio usare. Per quello ho fatto la prova.
@Frostbyte98
Però... cosa te ne fai di quel ciclo? Messa a quel modo l'esito del confronto non va da nessuna parte!
Se devi verificare che tutta la matrice sia azzerata, potresti fare in modo (ad esempio) che quando incontra un elemento non-zero esce dai cicli. A quel punto, verifichi: se in uscita dal ciclo annidato RIG==i e COL==j, allora l'intera matrice è azzerata; in caso contrario c'è ancora qualche elemento non azzerato.
Ovviamente, avresti tutta convenienza a fare una funzione dedicata verifica_matrice_azzerata(), o come vuoi chiamarla, che si occupi della verifica, magari restituendo 1 (come se fosse una specie di "true") in caso d'avvenuto azzeramento e restituendo 0 (come se fosse una specie di "false") in caso contrario.
P.S. Occhio che nel ciclo più interno hai scambiato quello che doveva essere un "j" con un "i".
#define RIG 8
#define COL 8
int main() {
int mat1[RIG][COL];
int i, j;
for( i=0; i<RIG; i++ ) {
for( j=0; j<COL; j++ ) {
if( 0 != mat1[i][j] ) /* se incontra un valore non-zero... */
break; /* esce ma... occhio, solo dal ciclo piu' interno! */
}
if( COL != j ) /* c'e' stata un'uscita "prematura" */
break; /* se c'e' stata un'uscita "prematura" dal ciclo
interno significa che e' stato trovato un valore
non-zero, quindi interrompe anche il ciclo esterno */
}
/* se arrivi qui e trovi RIG==i e COL==j significa per forza che TUTTI
gli elementi della matrice sono azzerati; in caso contrario significa
che ALMENO uno degli elementi della matrice non e' azzerato */
}