Devo effettuare la trasposta utilizzando la struttura dati matrice.. Senza usare la struttura dati non ho problemi, ma con questa struttura la matrice outupt viene azzerata stampando 0..
A cosa è dovuto?
codice:#include <stdio.h> #include <stdlib.h> #define r 100 #define c 100 struct matrice { float m[r][c]; int righe; int colonne; }; typedef struct matrice matrice; int i,j; void trasposta(matrice mat1, matrice mat2); int main(int argc, char *argv[]) { matrice m_in; matrice m_out; printf("Numero righe: "); scanf("%d", &m_in.righe); printf("\nNumero colonne: "); scanf("%d", &m_in.colonne); printf("\nNumero righe:"); scanf("%d", &m_out.righe); printf("\nNumero colonne: "); scanf("%d", &m_out.colonne); for (i=0; i<m_in.righe; i++) { for (j=0; j<m_in.colonne; j++) { printf("a[%d][%d]",i,j); scanf("%d", &m_in.m[i][j]); } } trasposta(m_in, m_out); for (i=0; i<m_in.righe; i++) { for (j=0; j<m_in.colonne; j++) { printf("%5f",m_out.m[i][j]); } printf("\n"); } system("PAUSE"); return 0; } void trasposta(matrice mat1, matrice mat2) { int i,j; for (i=0; i<mat1.righe; i++) { for (j=0; j<mat1.colonne; j++) { mat2.m[i][j]=mat1.m[j][i]; } } }

Rispondi quotando
