Oppure

Loading
18/06/11 16:14
Gianni91
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[i][j];}}
cout<<"Matrice ottenuta"<<endl;
for(int i=0;i<M;i++){cout<<"[";
for(int j=0;j<M;j++){
cout<<" "<<matt[i][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...:)

[i]EDIT by HeDo: Codice non racchiuso tra tag code
Ultima modifica effettuata da HeDo 19/06/11 12:17
aaa
18/06/11 17:46
inconcepibile
io lo farei così:

#include <cstdlib> 
#include <iostream> 
using namespace std; 

const int M = 4;

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

int main() 
{
    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[i][j];
            }
        } 
    cout<<"Matrice ottenuta"<<endl; 
    for (int i=0;i<M;i++) {
        cout<<"[";
        for (int j=0;j<M;j++) {
            cout<<" "<<matt[i][j]<<" "; 
            }
            cout<<"]"<<endl;
        } 
    verifica(matt,M,'b'); 
    cout << endl;
    system("PAUSE"); 
    return 0; 
}


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[i][j]).
aaa