PDA

Visualizza la versione completa : Passaggio di un vettore multidimensionale a una funzione! [C++]


managerfx
18-03-2011, 14:19
Salve ragazzi, ho un problema con un esercizio che sto svolgendo:
vi spiego la traccia:
devo realizzare un programma che carichi un elenco di nome e cognome e che mi stampi la stessa su desktop....e che effettui una ricerca di un nome o cognome nell'elenco utilizzando una funzione.

quello a cui avevo pensato questo:



#include <stdio.h>
#include <stdlib.h>
#define righe 100
#define colon 2
#define caratteri 30


char ricerca (char, char, int); /*PROTOTIPO DELLA FUZIONE*/


/*funzione ricerca*/
int ricerca (char lista[righe][colon], char x, int n)

{int i, j;

for (i=0; i<n; i++)
{
for (j=0; j<colon; j++)
{
if (x == lista[i][j])
return 1;
}
}
return 0;
}



/*main*/


int main ()
{
char lista [righe][colon][caratteri], x[caratteri];
int n, scelta, i, j, y=1, flag=0;

do
{printf ("\n\n CREAZIONE LISTA...");

do
{
printf ("\n\nInsierisci il numero di item da catalogare: ");
scanf ("%d", &n);
}
while (n>righe || n <=0);

for (i=0; i<n; i++)
{
for (j=0; j<colon; j++)
{
printf ("\n");
printf (".%d^ NOME: ", i+1);
scanf ("%s", lista[i][j]);
j=j+1;
printf (".%d^ COGNOME: ", i+1);
scanf ("%s", lista[i][j]);
}
}

/*STAMPA*/

printf ("\n\n\_____________STAMPA___________\n\n", i+1);
for (i=0; i<n; i++)
{
printf ("%d. ", y);
for (j=0; j<colon; j++)
{
printf ("%s |", lista[i][j]);
printf (" ", lista[i][j]);
}

printf ("\n\n");
y=y+1;
}

/* RICERCA ITEM*/


printf ("\n\n Vuoi effettuare una ricerca? 1= SI 2= NO: ");
scanf ("%d", &scelta);

if (scelta==1)
{
printf ("\n\n - Inserisci item da ricercare: ");
scanf ("%s", &x);
flag=ricerca(lista[righe][colon][caratteri], x, n);
if (flag == 1)
printf ("\n\n ELEMENTO TROVATO!!! ");
else
printf ("\n\n NON TROVATO!!! ");
}




scelta=0;
printf ("\n\n\n\n Premi 1 per ripetere: ");
scanf ("%d", &scelta);

} while (scelta == 1);

system ("pause");
return 0;

}




IL PROBLEMA E' CHE IN FASE DI COMPILAZIONE DI DA UN ERRORE DI QUESTO TIPO: no matching function for call to `ricerca(char&)'


Sapreste indicarmi dove commetto l'errore?

graazie

maurodefilippis
18-03-2011, 18:35
nel prototipo dichiari la funzione come char

char ricerca (char, char, int); /*PROTOTIPO DELLA FUZIONE*/

mentre nella definizione come int

int ricerca (char lista[righe][colon], char x, int n)

Loading