Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - programma con errore nel main(c++)
Forum - C/C++ - programma con errore nel main(c++)

Avatar
Gianni91 (Normal User)
Newbie


Messaggi: 1
Iscritto: 18/06/2011

Segnala al moderatore
Postato alle 18:14
Sabato, 18/06/2011
Salve a tutti qualcuno sarebbe cosi gentile da dirmi come risolvere l'errore
di seguito riportato...
C:\Users\G\Desktop\matrice.cpp cannot convert `char (*)[4]' to `char**' for argument `1' to `bool verifica(char**, int, char)'



#include <cstdlib>
#include <iostream>

using namespace std;
//funzione che verifica la presenza di un carattere dato da tastiera nella sottomatrice

bool verifica(char** matt,int w,char c){
     for(int i=0;i<w;i++){
             for(int j=0;j<w;j++){
                     if(matt[j]==c)cout<<"Lettera Trovata"<<endl;return true;}}
                    cout<<"Lettera NON Trovata"<<endl;return false; }

int main()
{
    const int M=4;
    char matt[M][M];
    for(int i=0;i<M;i++){
            cout<<"Inserire valori per la riga: "<<endl;
              for(int j=0;j<M;j++){
    cin>>matt[j];}}
    cout<<"Matrice ottenuta"<<endl;
    for(int i=0;i<M;i++){cout<<"[";
     for(int j=0;j<M;j++){
    cout<<" "<<matt[j]<<" ";
    }cout<<"]"<<endl;}
    verifica(matt,2,'b');
    system("PAUSE");
    return 0;
}



NB:se il main è poco conprensibile,scusatemi, mi serviva solo per capire delle cose XD
grazie a tutti per la disponibilita...:)

EDIT by HeDo: Codice non racchiuso tra tag code

Ultima modifica effettuata da HeDo il 19/06/2011 alle 14:17
PM
Avatar
inconcepibile (Member)
Newbie


Messaggi: 11
Iscritto: 30/05/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 19:46
Sabato, 18/06/2011
io lo farei così:

Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. const int M = 4;
  6.  
  7. bool verifica(char matt[M][M],int w,char c)
  8. {
  9.      for (int i=0;i<w;i++) {
  10.          for (int j=0;j<w;j++){
  11.              if (matt[i][j]==c) {
  12.                 cout<<"Lettera Trovata"<< endl;
  13.                 return true;
  14.                 }
  15.              }
  16.          }
  17.      cout <<"Lettera NON Trovata"<< endl;
  18.      return false;
  19. }
  20.  
  21. int main()
  22. {
  23.     char matt[M][M];
  24.     for (int i=0;i<M;i++) {
  25.         cout<<"Inserire valori per la riga: "<<endl;
  26.         for (int j=0;j<M;j++) {
  27.             cin >> matt[i][j];
  28.             }
  29.         }
  30.     cout<<"Matrice ottenuta"<<endl;
  31.     for (int i=0;i<M;i++) {
  32.         cout<<"[";
  33.         for (int j=0;j<M;j++) {
  34.             cout<<" "<<matt[i][j]<<" ";
  35.             }
  36.             cout<<"]"<<endl;
  37.         }
  38.     verifica(matt,M,'b');
  39.     cout << endl;
  40.     system("PAUSE");
  41.     return 0;
  42. }



Il tuo errore credo sia dovuto al fatto che ogni volta che mostravi la matrice o ci inserivi elementi la usavi così (matt[j]) invece devi passare ben 2 valori uno di riga uno d colonna (matt[j]).


Non mi importa chi sei,
non mi interessa cosa vuoi,
l’importante e che insegui i tuoi desideri
e combatti per un mondo migliore;
se così non fosse tutto ciò in cui crediamo cesserà
e rimarrà solo un mondo senza sogni e senza speranze...

THE GAME
PM