Buonasera a tutti, vi ringrazio in anticipo per il tempo che mi dedicherete. Sto facendo un programmino per la gestione di una rubrica e mi dà noia in compilazione, dice "request for member 'nome' in something not a structure or union", ecco qui il codice:
#include <stdio.h>
#include <stdlib.h>
#define N 20
#define C 5
typedef struct{
char nome[N];
char cognome[N];
char numero[N];
}contatto;
void menu();
void inserimento(contatto *[]);
void visualizza(contatto []);
void ricerca(contatto [], char [], int);
void modifica(contatto *[], char []);
void elimina(contatto [], char [], int);
int main()
{
typedef struct{
char nome[N];
char cognome[N];
char numero[N];
}contatto;
contatto rubrica[C];
int scelta;
char trova[N];
do{
system("cls");
menu();
printf("Inserisci la tua scelta: ");
scanf("%d", &scelta);
switch(scelta){
case 1:
system("cls");
inserimento(rubrica);
break;
case 2:
system("cls");
visualizza(rubrica);
break;
case 3:
system("cls");
printf("Inserisci in base a che elemento della rubrica vuoi effettuare la ricerca: \n");
printf("1. Nome\n");
printf("2. Cognome\n");
printf("3. Numero\n");
scanf("%d", &scelta);
printf("Inserisci l'elemento di ricerca: ");
scanf("%s", trova);
ricerca(rubrica, trova, scelta);
break;
case 4:
system("cls");
modifica(rubrica, trova);
break;
case 5:
system("cls");
do{
printf("Inserisci in base a che elemento della rubrica vuoi effettuare l'eliminazione del contatto: \n");
printf("1. Nome\n");
printf("2. Cognome\n");
printf("3. Numero\n");
scanf("%d", &scelta);
if(scelta<1 || scelta>3)
printf("Scelta inesistente. Ripetere l'inserimento.\n\n");
}while(scelta<1 || scelta>3);
printf("Inserisci l'elemento di ricerca: ");
scanf("%s", trova);
elimina(rubrica, trova, scelta);
break;
case 0: return 0;
break;
default:
printf("Scelta non valida. \n");
break;
}
}while(scelta!=0);
return 0;
}
void menu(){
printf("________________________________\n");
printf("Gestione rubrica 1.0 beta\n\n");
printf("Menu: \n"
"1. Inserimento elementi in rubrica\n"
"2. Visualizzare elementi in rubrica\n"
"3. Ricercare elementi in rubrica\n"
"4. Modificare un elemento in rubrica\n"
"5. Cancella un elemento dalla rubrica\n"
"0. Esci\n\n");
}
void inserimento(contatto *elemento[]) {
int i;
for(i=0;i<C;i++){
printf("\nInserisci l'elemento n. %d in rubrica: \n", i+1);
printf("\t nome: ");
scanf("%20s", *elemento[i].nome);
printf("\t cognome: ");
scanf("%20s", elemento[i].cognome);
printf("\t numero: ");
scanf("%10s", elemento[i].numero);
}
}
void visualizza(contatto elemento[]){
int i;
for(i=0;i<C;i++){
printf("\nElemento n. %d in rubrica: \n", i+1);
printf("\t nome: %s\n", elemento[i].nome);
printf("\t cognome: %s\n", elemento[i].cognome);
printf("\t numero: %s\n", elemento[i].numero);
}
}
void modifica(contatto *persona[], char el[]){}
void ricerca(contatto persona[], char el[], int sc){}
void elimina(contatto persona[], char el[], int sc){}
Ringrazio nuovamente