Split91
17-03-2011, 11:08
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?
#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];
}
}
}
A cosa è dovuto?
#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];
}
}
}