managerfx
17-03-2011, 15:56
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
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