Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Passaggio di un vettore multidimensionale a una funzione! [C++]

    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

  2. #2
    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)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.