Classe matrice con array di puntatori a stringhe
l'esercizio grosso modo diceva :
creare una classe matrice con un array a puntatori di stringhe da acquisire in input; come funzioni bisognava creare una per l'acquisizione dei valori e se l'utente inseriva il "-" alla cella dell'array si assegnava NULL, una per la stampa dei valori della martice e se una qualsiasi delle celle della matrice aveva NULL come valore si andava a stampare il "-"; una per la trasposta della matrice (dove nella stessa funzione ho messo la stampa direttamente)
dov'è che sbaglio ragazzi? vorrei capire qualcosa
creare una classe matrice con un array a puntatori di stringhe da acquisire in input; come funzioni bisognava creare una per l'acquisizione dei valori e se l'utente inseriva il "-" alla cella dell'array si assegnava NULL, una per la stampa dei valori della martice e se una qualsiasi delle celle della matrice aveva NULL come valore si andava a stampare il "-"; una per la trasposta della matrice (dove nella stessa funzione ho messo la stampa direttamente)
dov'è che sbaglio ragazzi? vorrei capire qualcosa
#include<iostream> #include<string> using namespace std; const int N=3; class Matrix { public: Matrix(); void inserisci(string* data, int r, int c); void stampa() const; void trasposta(); private: string* array[N][N]; }; Matrix::Matrix() { for(int i=0; i<N; i++) for(int k=0; k<N; k++) array[i][k]=NULL; } void Matrix::inserisci(string* data, int r, int c) { if(*data=="-") array[r][c]=NULL; else array[r][c]=data; } void Matrix::stampa() const { for(int r=0; r<N; r++) { for(int c=0; c<N; c++) { if(array[r][c]!=NULL) cout<<*array[r][c]<<" "; else cout<<"- "; } cout<<endl; } } void Matrix::trasposta() { string* temp[N][N]; for(int r=0; r<N; r++) { for(int c=0; c<N; c++) { if(array[r][c]!=NULL) temp[c][r]=array[r][c]; else *temp[c][r]="-"; } } for(int r=0; r<N; r++) { for(int c=0; c<N; c++) { if(temp[r][c]!=NULL) cout<<*temp[r][c]<<" "; else cout<<"-"<<" "; } cout<<endl; } } int main() { Matrix mat; string* value; for(int r=0; r<N; r++) { for(int c=0; c<N; c++) { value=new string; cout<<"Inserire il valore della cella "<<r<<","<<c<<" : "; cin>>*value; mat.inserisci(value,r,c); } } cout<<"Matrice: "<<endl; mat.stampa(); cout<<"Matrice trasposta: "<<endl; mat.trasposta(); return 0; }
Risposte
Quale problema incontri? Non riesci a compilarlo? Lo esegui ma il risultato è sbagliato? Con quale input hai testato il tuo programma? Quale output ottieni?
risolto grazie