Buonasera,
ieri ho avuto l'esame di programmazione e nel primo modulo era presente questo esercizio:
/*Scrivi una funzione che verifichi se la diagonale di una matrice e' palindroma.*/.
Cosi' oggi ho deciso di provare a computer se il programma che avevo fatto fosse corretto, ma a quanto pare c'è un errore. Io avevo pensato di risolverlo in questo modo:
codice:int palindroma(int mat[20][20], int, int); int main(){ int mat[20][20], riga, colonna; int i, j; int funzione; do{ printf("Quanti elementi vuoi inserire nella matrice? (masismo 20)\n"); scanf("%d.%d", &riga, &colonna); if(riga<1 || riga>20 || colonna<1 || colonna>20){ printf("ERRORE nell'inserimento!\nRIPROVA:\n"); } }while(riga<1 || riga>20 || colonna<1 || colonna>20); for(i=0; i<riga; i++){ for(j=0; j<colonna; j++){ printf("Immetti elementi [%d, %d]:\n", i, j); scanf("%d.%d", &mat[i][j]); } } funzione=palindroma(mat, riga, colonna); if(funzione==0) printf("La diagonale E' palindroma\n"); else printf("La diagonale NON E' palindroma\n"); system("pause"); return 0; } int palindroma(int mat[20][20], int riga, int colonna){ int i, j; int flag=0; for(i=0; i<riga; i++){ for(j=0; j<colonna; j++){ if((i==j) == (riga-1-i==colonna-1-j)) flag=0; else flag=1; } } return flag; }

,
Rispondi quotando
