#include <stdio.h>
#define N 3
void leggiMatrice(double m[N][N])
{
int i, j;
printf("Inserire gli elementi di una matrice di double %dx%d\n", N, N);
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
scanf("%lg", &m[i][j]);
}
void stampaMatrice(double m[N][N])
{
int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf("%6.2g", m[i][j]);
printf("\n");
}
}
void copiaMatrice(double m[N][N], double copia[N][N])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
copia[i][j] = m[i][j];
}
void trasposta(double m[N][N])
{
int i, j;
double app;
for (i = 0; i < N; i++)
for (j = 0; j < i; j++) {
app = m[i][j];
m[i][j] = m[j][i];
m[j][i] = app;
}
}
int main(void)
{
double mat[N][N], trasp[N][N];
leggiMatrice(mat);
printf("\nLa matrice inserita e`:\n");
stampaMatrice(mat);
copiaMatrice(mat, trasp);
trasposta(trasp);
printf("\nLa trasposta e`:\n");
stampaMatrice(trasp);
return 0;
}