View Full Version : [C++]Prime armi- matrici
cicciopantera
09-05-2015, 13:24
Ciao ragazzi, vorrei costruire un codice che mi permetta di caricare una matrice 4x4 elaborando, successivamente, la sua trasposta. Vorrei realizzarlo attraverso la costruzione di sottofunzioni void. Come posso fare?
Ho provato così ma nada...
#include <iostream>
using namespace std;
int main()
{
int A[4][4];
for (int i=0;i<4;i++){
for (int j=0;j<4;j++)
{
cout<<"Inserisci l'elemento della matrice A["<<i<<"]["<<j<<"]: ";
cin>>A[i][j];
}
}
void matrice_trasposta(int A[4][4]);
system ("PAUSE");
return 0;
}
void matrice_trasposta(int A[4][4])
{
cout<<"La matrice trasposta è: ";
for (int y=0;y<4;y++){
for(int x=0;x<4;x++){
cout<<A[x][y]<<"\t";
}
}
}
So che è pieno di errori ma ho qualche problema riguardo i puntatori in C++
:help:
cicciopantera
10-05-2015, 14:28
c'è nessuno?
lorenzo001
10-05-2015, 18:17
Cosa è questa linea
void matrice_trasposta(int A[4][4]);
che hai scritto nel main?
cicciopantera
10-05-2015, 19:40
Nel main ho impostato il caricamento della matrice e con il void ho introdotto la funzione da chiamare...
lorenzo001
10-05-2015, 19:43
Ncon il void ho introdotto la funzione da chiamare...
Quella è la dichiarazione della funzione, che va posta prima del main, ma non hai inserito la "chiamata" alla funzione nel main ... non sai come si scrive la chiamata alla funzione ?
cicciopantera
10-05-2015, 20:09
ahi allora mi confondo...sarebbe?
lorenzo001
10-05-2015, 20:31
matrice_trasposta(A);
cicciopantera
11-05-2015, 09:31
Ok corretto, ho posto il void prima dell'int main ma sussiste l'errore...
lorenzo001
11-05-2015, 10:25
Ok corretto, ho posto il void prima dell'int main ma sussiste l'errore...
Ma di quale errore parli? Qual è adesso il codice completo?
cicciopantera
11-05-2015, 20:16
Ho compilato così..
#include <iostream>
using namespace std;
void matrice_trasposta(int A[][4]);
int main()
{
int A[][4];
for (int i=0;i<4;i++){
for (int j=0;j<4;j++)
{
cout<<"Inserisci l'elemento della matrice A["<<i<<"]["<<j<<"]: ";
cin>>A[i][j];
}
}
void matrice_trasposta(A);
system ("PAUSE");
return 0;
}
void matrice_trasposta(int A[][4])
{
cout<<"La matrice trasposta è: ";
for (int y=0;y<4;y++){
for(int x=0;x<4;x++){
cout<<A[x][y]<<"\t";
}
}
}
lorenzo001
11-05-2015, 21:04
Questa
int A[4][4];
perché è diventata
int A[][4];
???
E in questa
void matrice_trasposta(A);
perché continui ad aggiungere void se ti ho già detto che devi solo scrivere
matrice_trasposta(A);
???
cicciopantera
11-05-2015, 21:13
Vero scusami, ecco:
#include <iostream>
using namespace std;
void matrice_trasposta(int A[4][4]);
int main()
{
int A[4][4];
for (int i=1;i<4;i++){
for (int j=1;j<4;j++)
{
cout<<"Inserisci l'elemento della matrice A["<<i<<"]["<<j<<"]: ";
cin>>A[i][j];
}
}
matrice_trasposta(A);
system ("PAUSE");
return 0;
}
void matrice_trasposta(int A[4][4])
{
cout<<"La matrice trasposta è: ";
for (int y=1;y<4;y++){
for(int x=1;x<4;x++){
cout<<A[x][y]<<"\t";
}
}
}
lorenzo001
11-05-2015, 21:16
Vero scusami, ecco:
Quindi?
cicciopantera
11-05-2015, 21:19
La tablatura non funziona, inoltre penso andrebbe messo nei cicli for i=1; i<5....
lorenzo001
11-05-2015, 21:21
Beh ... è semplice da mettere a posto ... cerca di farlo tu altrimenti non impari nulla ...
Buona serata e buon lavoro ...
cicciopantera
11-05-2015, 21:23
Ma è sbagliato il mio "\t"?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.