|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
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:
Sapreste indicarmi dove commetto l'errore? graazie Ultima modifica di managerfx : 18-03-2011 alle 14:32. |
|
![]() |
![]() |
![]() |
#2 |
Senior Member
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. |
![]() |
![]() |
![]() |
#3 |
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??? |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Feb 2011
Messaggi: 11
|
c'è qualcuno che sa darmi una dritta???
![]() ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
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 |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Feb 2011
Messaggi: 11
|
non mi esce indentato!
|
![]() |
![]() |
![]() |
#7 |
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; } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:29.