Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problemi con il passaggio di liste ad una funzione!
Forum - C/C++ - problemi con il passaggio di liste ad una funzione!

Avatar
bulma (Normal User)
Newbie


Messaggi: 1
Iscritto: 06/09/2012

Segnala al moderatore
Postato alle 18:45
Giovedì, 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++

  1. #include <iostream>
  2. #include<list>
  3. using namespace std;
  4. enum colors{w=1, b, u};
  5.  
  6. bool prova(list<int>&percorsoI,list<int>&percorsoJ,list<colors>&sol,colors**m,int&,int&);
  7.  
  8.  
  9. int main()
  10. {
  11.    colors ** m;
  12.    int dim;
  13.         char colore;
  14.         cout<<"dim"<<endl;
  15.         cin>>dim;
  16.         m=new colors*[dim];
  17.         for(int z=0;z<dim;z++)
  18.              m[z]=new colors[dim];
  19.          list<colors>l;
  20.          list<int>percorsoI; //lista per salvare le posizioni di riga
  21.          list<int>percorsoJ; //lista per salvare le posizioni di colonna
  22.  
  23.         cout << "Inserisci matrice"<<endl;
  24.         for(int i=0; i <dim;i++)
  25.            for(int j=0;j<dim;j++)
  26.                {
  27.                    cin >> colore;
  28.                    m[i][j]=(colors) colore;
  29.                }
  30.  
  31.        cout << "la matrice: "<<endl;
  32.        for(int i=0; i <dim;i++)
  33.           {
  34.               cout<<endl;
  35.               for(int j=0;j<dim;j++)
  36.                     {
  37.  
  38.                    cout<< (char)m[i][j] ;
  39.                      }
  40.            }
  41.        cout<<endl;
  42.        int i=0,j=0;
  43.       if(prova(percorsoI,percorsoJ,l,m,i,j))
  44.       {
  45.       cout<<"ok"<<endl;
  46.       }
  47.      else cout<<"NO";
  48.  
  49.     cout<<"LA LISTA L: "<<endl;
  50.     for(list<colors>::iterator it=l.begin();it!=l.end();it++)
  51.        cout<<(char)(*it)<<endl;
  52.     cout<<endl;
  53.     cout<<"percorso i: "<<endl;
  54.     for(list<int>::iterator it2=percorsoI.begin();it2!=percorsoI.end();it2++)
  55.           cout<<(*it2)<<endl;
  56.     cout<<endl;
  57.     cout<<"percorso j: "<<endl;
  58.     for(list<int>::iterator it3=percorsoJ.begin();it3!=percorsoJ.end();it3++)
  59.               cout<<(*it3)<<endl;
  60.  
  61. } //fine main
  62.  
  63.  
  64. bool prova(list<int>&percorsoI, list<int>&percorsoJ, list<colors>&sol, colors**m, int&i, int&j)
  65. {
  66.    if(m[i][j]==m[i][j+1])
  67.    {
  68.       sol.push_back(m[i][j]);
  69.       percorsoI.push_back(i);
  70.       percorsoJ.push_back(j);
  71.       return prova(percorsoI,percorsoJ,sol,m,i,j++);
  72.  
  73.    }
  74.    return false;
  75. }



help please!!:(:d

PM Quote