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