bulma (Normal User)
Newbie
Messaggi: 1
Iscritto: 06/09/2012
|
Salve a tutti sono nuova nel forum.. e sn alle prime armi con c++ e le liste... dovrei fare un programmino ke prenda da input una matrice n*n di tipo color (cioè un tipo enum creato da me) e verifichi tramite una funzione ricorsiva bool, ke la cella in esame è uguale alla successiva...se sono uguali, devo caricarla in una lista. il problema xò è k non riesco a caricare gli elementi nella lista.. e tra l altro, passando gli indici della matrice all interno della funzione, mi dà errori!! help me please.. v posto il codice..
Codice sorgente - presumibilmente C++ |
#include <iostream> #include<list> using namespace std; enum colors{w=1, b, u}; bool prova(list<int>&percorsoI,list<int>&percorsoJ,list<colors>&sol,colors**m,int&,int&); int main() { colors ** m; int dim; char colore; cout<<"dim"<<endl; cin>>dim; m=new colors*[dim]; for(int z=0;z<dim;z++) m[z]=new colors[dim]; list<colors>l; list<int>percorsoI; //lista per salvare le posizioni di riga list<int>percorsoJ; //lista per salvare le posizioni di colonna cout << "Inserisci matrice"<<endl; for(int i=0; i <dim;i++) for(int j=0;j<dim;j++) { cin >> colore; m[i][j]=(colors) colore; } cout << "la matrice: "<<endl; for(int i=0; i <dim;i++) { cout<<endl; for(int j=0;j<dim;j++) { cout<< (char)m[i][j] ; } } cout<<endl; int i=0,j=0; if(prova(percorsoI,percorsoJ,l,m,i,j)) { cout<<"ok"<<endl; } else cout<<"NO"; cout<<"LA LISTA L: "<<endl; for(list<colors>::iterator it=l.begin();it!=l.end();it++) cout<<(char)(*it)<<endl; cout<<endl; cout<<"percorso i: "<<endl; for(list<int>::iterator it2=percorsoI.begin();it2!=percorsoI.end();it2++) cout<<(*it2)<<endl; cout<<endl; cout<<"percorso j: "<<endl; for(list<int>::iterator it3=percorsoJ.begin();it3!=percorsoJ.end();it3++) cout<<(*it3)<<endl; } //fine main bool prova(list<int>&percorsoI, list<int>&percorsoJ, list<colors>&sol, colors**m, int&i, int&j) { if(m[i][j]==m[i][j+1]) { sol.push_back(m[i][j]); percorsoI.push_back(i); percorsoJ.push_back(j); return prova(percorsoI,percorsoJ,sol,m,i,j++); } return false; }
|
help please!!
|