ho modificato alcune cose come tu mi hai detto:
alcune cose ho risolto, altre invece no .. riscontro comunque problemi nel passaggio di parametricodice:#include <stdlib.h>#include <string.h> #define MAX 100 /*Variabili Globali*/ typedef struct recRubrica { char Cognome[10]; char Nome[10]; int Numero; }t_Rubrica; /*Prototipi Procedure*/ void visualmenu(); void scelta(int *N); void iniazializzazione(t_Rubrica *rubrica); void visualrubrica(t_Rubrica *rubrica); void aggiungi(int *c,t_Rubrica *rubrica); void gestione(int n,int *c,t_Rubrica *rubrica); /*Programma Principale*/ int main() { t_Rubrica rubrica[MAX]; int n; int c=0; iniazializzazione(&rubrica); do{ visualmenu(); scelta(&n); gestione(n,&c,&rubica); system("PAUSE"); system("cls"); }while(n=!5); system("PAUSE"); return(0); } /*Procedure:*/ void iniazializzazione(t_Rubrica *rubrica){ int i; for(i=0;i<MAX;i++) rubrica[i].Nome[0]= 'x'; return; } void visualmenu(){ printf("\t\t\tRUBRICA TELEFONICA:"); printf("\n\n\t 1-Aggiungi nuova voce in rubrica"); printf("\n\n\t 2-Ricerca per nome"); printf("\n\n\t 3-Ricerca per cognome"); printf("\n\n\t 4-Stampa intera rubrica"); printf("\n\n\t 5-Esci"); return; } void scelta(int *N){ printf("\n\tInserisci scelta: "); scanf("%d",N); return; } void gestione(int n,int *c,t_Rubrica *rubrica){ switch(n){ case 1: aggiungi(c,&rubrica); break; case 2: break; case 3: break; case 4: visualrubrica(&rubrica); break; } return; } void aggiungi(int *c,t_Rubrica *rubrica){ if(*c!=MAX){ printf("\n\tInserisci Nome: "); scanf("%s",&rubrica[*c].Nome); printf("\n\tInserisci Cognome: "); scanf("%s",&rubrica[*c].Cognome); printf("\n\tInserisci Numero telefonico: "); scanf("%s",&rubrica[*c].Numero); (*c)++; }else{ printf("\n\n\t\tMemoria piena"); } return; } void visualrubrica(t_Rubrica *rubrica){ int i; printf("\n\tNOME \t- \tCOGNOME \t- \tNUMERO TELEFONICO"); for(i=0;i<MAX;i++){ if(rubrica[i].Nome[0]!='x'){ printf("\n\t%s \t \t%s \t%d",rubrica[i].Nome,rubrica[i].Cognome,rubrica[i].Numero); } } return; }

Rispondi quotando