Lo sbaglio che fai nella funzione ruota è che modifichi i valori della matrice prima di averli sostituiti.
Secondo me, nella funzione ruota, devi usare una matrice ausiliare n per n.
Alloca la memoria per la matrice ausiliare.
Nel ciclo invece di p[i][j]=p[j][n-1-i]; scrivi ausiliare[i][j]=p[j][n-1-i];
Poi copia la ausiliare nella matrice p passata come parametro modificandola.
Libera la memoria occupata dalla matrice ausiliare

Rispondi quotando