Salve ragazzi sono nuovo e stavo cercando una mano.
Sto creando una rubrica in c di cui posto il sorgente
codice:
#include <stdio.h>
#include <stdlib.h>
struct data{
   int giorno;
   int mese;
   int anno;
};
struct indirizzo{
   char via[25];
   char citta[25];
   char provincia[25];
   char nazione[25];
   char cap[6];
};
struct persona{
   char nome[25];
   char cognome[25];
   struct data data_nascita;
   struct indirizzo ind;
   char sesso;
};
int mesi[]={31,28,31,30,31,30,31,31,30,31,30,31};
struct persona pers[50];
int controllo_nom();
int controllo_data(int, int, int);
char controllo_sesso();
void inserimento(int);
int main(int argc, char *argv[])
{
  
    
  int nom;  
  
  nom=controllo_nom();
  inserimento(nom);
    
  system("PAUSE");	
  return 0;
}
int controllo_nom(){
   int a,nom;
   do{
       printf("Quanti nominativi inserire? ");
       scanf("%d",&nom);
       if (nom>0 && nom<=50){
          a=1;
          }
       else{
          system("CLS");
          printf("Inserire un numero compreso tra 0 e 50\n");      
          a=0;
          } 
   }while(a!=1);
   return nom;
}
int controllo_data(int g, int m, int a){
   float resto;
   resto=a%4;
   if(resto==0)
      mesi[1]=29;
   if(m>0 && m<=12){
      if(m==4 || m==6 || m==9 || m==11)
         if(g>0 && g<=30 && a<=2009){
            return 1;
            }
         else{
            printf("Inserire una data valida\n");
            return 0;
         }
      if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
         if(g>0 && g<=31 && a<=2009){
            return 1;
         }
         else{
            printf("Inserire una data valida\n");
            return 0;
         }
      if(m==2)
         if(g>0 && g<=mesi[1] && a<=2009){
            return 1;
         }
         else{
            printf("Inserire una data valida\n");
            return 0;
         }
   }
   else{
      printf("Inserire una data valida\n");
      return 0;
   }
}                           
   
void inserimento(int n){
   int i,tmp,tem;             
   for(i=0;i<n;i++){
     printf("Inserisci %d nome: ",i+1);
     scanf("%s",&pers[i].nome);
     printf("\n");
     printf("Inserisci %d cognome: ",i+1);
     scanf("%s",&pers[i].cognome);
     printf("\n");
     //printf("Inserisci %d sesso m o f: ",i+1);
     //scanf("%c",&pers[i].sesso);
     pers[i].sesso=controllo_sesso();
  
     do{
        printf("Inserisci %d giorno nascita gg: ",i+1);
        scanf("%d",&pers[i].data_nascita.giorno);
        printf("\n");
        printf("Inserisci %d mese nascita mm: ",i+1);
        scanf("%d",&pers[i].data_nascita.mese);
        printf("\n");
        printf("Inserisci %d anno nascita aaaa: ",i+1);
        scanf("%d",&pers[i].data_nascita.anno);
        printf("\n");
        tmp=controllo_data(pers[i].data_nascita.giorno,pers[i].data_nascita.mese,pers[i].data_nascita.anno);
     }while(tmp!=1);   
     
     printf("Inserisci %d indirizzo di residenza: ",i+1);
     fflush(stdin);
     gets(pers[i].ind.via);
     printf("\n");
     printf("Inserisci %d citta' di residenza: ",i+1);
     gets(pers[i].ind.citta);
     printf("\n");
     printf("Inserisci %d provincia di residenza: ",i+1);
     gets(pers[i].ind.provincia);
     printf("\n");
     printf("Inserisci %d nazione di residenza: ",i+1);
     scanf("%s",&pers[i].ind.nazione);
     printf("\n");
     //pers[i].ind.cap=controllo_cap(i);
     //do{
        printf("Inserisci %d C.A.P. di residenza: ",i+1);
        scanf("%s",&pers[i].ind.cap);
        printf("\n");
     //}while(pers[i].ind.cap[4]=='\0');
   }
   printf("%s",pers[i].ind.cap);
}
char controllo_sesso(){
   char s;
   printf("Digitare il sesso: ");
   scanf("\n%c",&s);
   while (s!='m' && s!='f'){
      printf("Digitare il sesso: ");
      scanf("\n%c",&s);
   }  
   return s; 
}
Sto cercando di implementare un controllo sul C.A.P e magari implementare anche una rubrica.
C'è qualcuno che possa darmi una mano?