Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-03-2011, 15:56   #1
managerfx
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 11
Passaggio di un vettore multidimensionale a una funzione!

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:
Quote:
#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

Ultima modifica di managerfx : 18-03-2011 alle 14:32.
managerfx è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2011, 16:05   #2
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
se definisci e includi la funzione prima del main il prototipo ( la sola dichiarazione della funzione ) è inutile.

rileggi bene il programma, ci sono un paio di errori evidenti, chiediti cosa deve ritornare la funzione, di che tipo quindi deve essere e se è necessario che sia tipata, e come avviene il passaggio di vettori ( che sono comunque puntatori ) nel C.
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2011, 16:20   #3
managerfx
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 11
in effetti ho sbagliato il tipo della funzione che al posto di "char" deve essere "int"...il problema è che proprio non ricordo come cavolo si passano i vettori alle funzioni....il discorso "puntatori" non me lo ricordo proprio!


che devo dirvi....mi basta anche una giuda....dato che sul libro non ho trovato niente!

grazie ancora!

PS: non ho mai capito a che serve il prototipo della funzione! mi sapreste chiarire le idee a riguardo???
managerfx è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2011, 12:11   #4
managerfx
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 11
c'è qualcuno che sa darmi una dritta???
managerfx è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2011, 13:35   #5
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Ti consiglio di indentare bene il codice... io non mi ci metto proprio a leggere un codice non indentato..ti fa perdere il filo

comunque come ti ha detto Freaxxx ci sono "almeno" 2 grossi errori...

modifica il codice e indentalo
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2011, 14:32   #6
managerfx
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 11
non mi esce indentato!
managerfx è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2011, 14:37   #7
managerfx
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 11
ecco il file indentato.....avevo sbagliato a copiarlo! sorry

Codice:
#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;
           
   }
managerfx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v