Ciao... La prossima volta che posti, per il codice, usa il tag code... Detto questo il compilatore giustamente protesta perchè passi un array di Concorrenti alla funzione quando la funzione stessa vuole un riferimento a Concorrenti. Quindi dovresti cambiare il prototipo della funzione così :
codice:
void CercaConcorrente(Concorrente* record, char *cerca, int N)
E comunque ho dato uno sguardo veloce al codice e credo che dovresti fare alcune modifiche:
codice:
do
{
cout << "Quanti concorrenti vuoi inserire:\n";
cin >> N;
}
while(!(N >= 2) && (N <= 30)); // Per non sforare i limiti dell' array
for (i = 0; i < N; i++)
InserisciRecord(Giocatore[i]);
cout << "Inserisci il nome del concorrente da ricercare:\n";
cin >> cerca;
CercaConcorrente(Giocatore, cerca, N); // Qui devi passere il puntatore e non il suo indirizzo
return 0;
}
Qui invece:
codice:
void CercaConcorrente(Concorrente* record, char *cerca, int N) // Come il prototipo modificato
{
for(int i=0; i<N; i++)
{
if (strcmp(cerca, record[i].nome) == 0) // Qui devi accedere elemento per elemento
{
cout << "Nome: " << record[i].nome<<endl; // Usa endl per andare a nuova riga
cout << "Nazionalita': " << record[i].nazione<<endl;
cout << "Eta': " << record[i].eta<<endl;
cout << "Posizione: " << record[i].posizione<<endl;
return;
}
}
// Se non è stato trovato
cout << "Non esiste nessun concorrente col nome " << cerca << " che ha partecipato";
}
Comunque ti consiglio di dare una ripassatina ai puntatori e agli array... Ciao