Salve a tutti spero di postare correttamente visto che è il primo msg che invio su questo forum
Passo ad illustrare il mio problema
Devo creare la trasposta di una matrice(quadrata) generica e salvarla e non capisco perchè il mio codice non funziona
codice:
#include <cstdlib>
#include <iostream>
using namespace std;
#define max 10
void trasposta(int a[][max],int &x);
int main(){
int n;
cout<<"inserisci l'ordine della matrice quadrata da traspore: ";
cin>>n;
int m[max][max];
for(int i=0; i<n;i++)
for(int j=0; j<n;j++){
cout<<"inserisci l'elemento"<<"[ "<<i<<" , "<<j<<" ] ";
cin>> m[i][j];
cout<<endl;
}
cout<<" La matrice inserita è: \n";
for(int i=0; i<n;i++){
for(int j=0; j<n;j++)
cout<<m[i][j]<<" ";
cout<<endl;}
trasposta(m,n);
system("PAUSE");
return EXIT_SUCCESS;
}
void trasposta(int a[][max],int &x){
{int tmp,i,j;
for(i=0; i<x;i++){
for(j=0; j<x;j++){
tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}}}
cout<<" La matrice inserita trasposta e :\n";
for(int i=0; i<x;i++){
for(int j=0; j<x;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
}
sono arrivato ad soluzione alternativa ma vorrei capire perchè la prima non funziona grazie in anticipo per le vostre risposte
Posto anche la soluzione alternativa
codice:
#include <cstdlib>
#include <iostream>
using namespace std;
typedef int matrix[10][10];
void trasposta(matrix m,int &x);
int main(){
int n;
cout<<"inserisci l'ordine della matrice quadrata da traspore: ";
cin>>n;
matrix m;
for(int i=0; i<n;i++)
for(int j=0; j<n;j++){
cout<<"inserisci l'elemento"<<"[ "<<i<<" , "<<j<<" ] ";
cin>> m[i][j];
cout<<endl;
}
cout<<" La matrice inserita è: \n";
for(int i=0; i<n;i++){
for(int j=0; j<n;j++)
cout<<m[i][j]<<" ";
cout<<endl;}
trasposta(m,n);
system("PAUSE");
return EXIT_SUCCESS;
}
void trasposta(matrix a,int &x){
matrix t;
{
for(int i=0; i<x;i++){
for(int j=0; j<x;j++){
t[j][i]=a[i][j];
}
}
}
cout<<" La matrice inserita trasposta e :\n";
for(int i=0; i<x;i++){
for(int j=0; j<x;j++)
cout<<t[i][j]<<" ";
cout<<endl;}
}