Ma che monitor usi?
Hai una indentazione veramente orrida,scusamo ma ho perso 12 minuti solo per indentare il codice in modo da capirci qualcosa.O è solo problema del mio monitor???
Dato che cero ho fatto un paio di modifiche commentando grossolanamente gli errori.
Dubito che però possa funzionare.
#include <stdio.h>
#include <string.h>
#define MAXELE 30
#define DIM 31
#define MENU 0
#define INS 1
#define CAN 2
#define RIC 3
#define VIS 4
#define OUT 100
struct per
{
char nome[DIM];
char cognome[DIM];
char indirizzo[DIM];
int eta;
};
struct per anag[MAXELE];
int index=0;
int menper(void);
int insper(void);
struct per * cerper(char *, char *, int);
void eliper(struct per *);
void canper(void);
void ricper(void);
void visper(struct per *);
//void visanagrafe(void);
void visAnagrafe(void);
int main()
{
int scelta = MENU;
while(scelta != OUT)
{
switch(scelta)
{
case MENU:
scelta=menper();
if(scelta==MENU)
scelta=OUT;
break;
case INS:
//index = insper(index);//error: too many arguments to function 'insper'|
index = insper();
scelta=MENU;
break;
case CAN:
canper();
scelta = MENU;
break;
case RIC:
ricper();
scelta = MENU;
break;
case VIS:
//visanagrafe();
visAnagrafe();
scelta = MENU;
break;
}//switch scelta
}//loop scelta
return 0; //MAIN IS A INT
}//main
int menper(void)
{
int scelta;
char invio;
int vero=1;
while(vero)
{
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("\t\t\t\t ANAGRAFE");
printf("\n\n\n\n\t\t\t\t 1. IMMISSIONE PERSONA");
printf("\n\n\n\n\t\t\t\t 2. CANCELLAZIONE PERSONA");
printf("\n\n\n\n\t\t\t\t 3. RICERCA PERSONA" );
printf("\n\n\n\n\t\t\t\t 4. VISUALIZZA PERSONA");
printf("\n\n\n\n\t\t\t\t 5. FINE");
printf("\n\n\n\n\t\t\t\t SCEGLIERE UN OPZIONE");
scanf("%d",&scelta);
scanf("%c",&invio);
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
switch (scelta)
{
case 0 :
case 1 :
case 2 :
case 3 :
case 4 :
return(scelta);
default:
break;
}//switch scelta
}//loop vero
return(0);
}//menper
int insper ()
{
char invio;
if(pos>= MAXELE) //NON SO COSA SIA POS E DOVE TU L'ABBIA DICHIARATO
{
printf(" NON SI POSSONO INSERIRE ALTRI NOMI");
scanf("%c", &invio);
return pos;
}
printf("\n\t\tINSERIMENTO PERSONA ");
printf("\n\t\t----------------\n\n\n");
printf("\nCognome : ");
gets( anag[pos] .cognome);
printf("\nNome : ");
gets(anag[pos] .nome);
printf("\nIndirizzo : ");
gets(anag[pos].indirizzo);
printf("\nEta : ");
scanf("%d", &anag[pos].eta);
scanf("%c", & invio);
pos++;
return pos;
}//insper
void canper()
{
char pausa ;
char cognome[DIM];
char nome [DIM];
int eta;
struct per *ps;
printf("\n\t\tCANCELLA" );
printf("\n\t\t------\n\n");
printf("nCognome : ");
gets(cognome);
printf("\nNome : ");
gets(nome);
printf("\nEta : ");
scanf("%d", &eta);
scanf("%c", &pausa);
ps=cerper(cognome,nome,eta);
if(ps==NULL)
{
printf("\nPersona non presente in anagrafe");
scanf("%c", &pausa);
return;
}
visper(ps);
printf("\nConfermi cancellazione? (S/N) ");
scanf("%c", &pausa);
if (pausa=='S' || pausa=='S')
{
eliper(ps);
return;
}
}//canper
void eliper(struct per *p)
{
strcpy(p->cognome, " ");
strcpy(p->nome ," ");
strcpy(p->indirizzo, " ");
p->eta=0;
}
void ricper(void)
{
char pausa ;
char cognome[DIM];
char nome[DIM];
int eta;
struct per *ps;
printf("\n\n\nRICERCA PERSONA ");
printf("\n\t\t-------\n\n");
printf("\nCognome : ");
gets(cognome);
printf("\nNome : ");
gets(nome);
printf("\nEta : ");
scanf("%d" , &eta);
scanf("%c", &pausa);
ps= cerper(cognome,nome,eta);
if(ps==NULL)
{
printf("\nPersona non presente in anagrafe");
scanf("%c",&pausa);
return;
}
visper(ps);
scanf("%c", &pausa);
}//ricper
struct per *cerper(char *cg, char *nm, int et)
{
int i;
for(i=0; i<= index; i++)
{
if(strcmp(cg, anag[i].cognome)==0)
if(strcmp(nm, anag[i].nome)==0)
if(et==anag[i].eta)
return(&anag[i]);
}
return(NULL);
}
void visper(struct per *p)
{
printf("\n\n---------------------\n");
printf("\n\t\tCognome : %s", p->cognome);
printf("n\t\tNome : %s", p->nome);
printf("n\t\tIndirizzo : %s", p->indirizzo);
printf("n\t\tEta : %d", p->eta);
printf("\n\n----------------------\n");
}
void visAnagrafe(void)
{
int i;
char pausa;
struct per *ps= &anag[0];
for(i=0; i<= index; i ++);
{
visper(ps++);
scanf("%c", &pausa);
}
}
//Fine della conversazione in chat