Mi aiutate a risolvere questo esercizio in C?
Una matrice N x N è simmetrica se A[i][j]=A[j][i] per tutti gli i e j. Scrivere una funzione booleana che riceve come parametro una matrice NxN, e restituisce come risultato il valore vero se la matrice è simmetrica, falso altrimenti.
Vi scrivo la parte che ho fatto, solo che non so esattamente come far risultare una risposta falsa o vera, so dichiarare enum etc ma poi dentro la funzione non so come usarlo. (da testo non posso usare dichiarazioni globali, invece variabili globali sì)
(siccome i,j = j,i la diagonale di cui non mi devo curare perchè il valore di quelle caselle sarà uguale a se stessa, è la diagonale che va dall'alto a sx fino a in basso a dx). Uso le graffe anche dove non necessario per evidenziare i vari passaggi.
void verifica(int mat[N][N])
{int i,j,trovato=0,x=1;
for(i=N-1;i<0 && trovato!=1;i++)
{for(j=0;j<N-x && trovato!=1;j++)
{if(mat[i][j]!=mat[j][i])
{trovato=1;}} x++;}
if(trovato!=1) /*dire che è false*/
else /*dire che è false*/
}
Grazie mille.
Una matrice N x N è simmetrica se A[i][j]=A[j][i] per tutti gli i e j. Scrivere una funzione booleana che riceve come parametro una matrice NxN, e restituisce come risultato il valore vero se la matrice è simmetrica, falso altrimenti.
Vi scrivo la parte che ho fatto, solo che non so esattamente come far risultare una risposta falsa o vera, so dichiarare enum etc ma poi dentro la funzione non so come usarlo. (da testo non posso usare dichiarazioni globali, invece variabili globali sì)
(siccome i,j = j,i la diagonale di cui non mi devo curare perchè il valore di quelle caselle sarà uguale a se stessa, è la diagonale che va dall'alto a sx fino a in basso a dx). Uso le graffe anche dove non necessario per evidenziare i vari passaggi.
void verifica(int mat[N][N])
{int i,j,trovato=0,x=1;
for(i=N-1;i<0 && trovato!=1;i++)
{for(j=0;j<N-x && trovato!=1;j++)
{if(mat[i][j]!=mat[j][i])
{trovato=1;}} x++;}
if(trovato!=1) /*dire che è false*/
else /*dire che è false*/
}
Grazie mille.
Commenta