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;
}