|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2011
Messaggi: 3
|
[c] Trasposta matrice
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];
}
}
}
|
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Oct 2010
Messaggi: 16
|
Ciao, concettualmente la funzione trasposta è sbagliata, nell'assegnazione devi fare
Codice:
for (i=0; i<mat1.righe; i++) {
for (j=0; j<mat1.colonne; j++) {
mat2.m[j][i]=mat1.m[i][j];
}
}
Codice:
for (i=0; i<mat2.righe; i++) {
for (j=0; j<mat2.colonne; j++) {
mat2.m[i][j]=mat1.m[j][i];
}
}
Inoltre avendo una matrice m[i][j] la sua trasposta sarà m[j][i], quindi dopo aver inserito le righe e le colonne per la prima si conosceranno quelle della seconda: Codice:
printf("Numero righe: ");
scanf("%d", &m_in.righe);
printf("Numero colonne: ");
scanf("%d", &m_in.colonne);
m_out.righe = m_in.colonne;
m_out.colonne = m_in.righe;
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:28.



















