Sto impazzendo..a me questa parte di codice sembra tutta giusta, ma alla fine non stampa né mese né anno !!E non capisco come mai, ma quando inserisco il meseil giorno diventa formato da giorno+mese anche se non gliel'ho detto...e così anche per il mese con l'anno :|
codice:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>

#define max 50

char nome[max],cognome[max],comune[max],codicefiscale[16],sesso[2],giorno[2],mese[2],anno[4];
int lfisc,i,j=0,p,g=0,m=0,a=0,c=0;
void main(){

printf("Inserisci il tuo cognome : " );
gets(cognome);
printf("Inserisci il tuo nome : ");
gets(nome);
do{
printf("Sei maschio o femmina ? Se maschio scrivi M, femmina scrivi F : ");
scanf("%s",sesso);
}while((sesso[0]!='m')&&(sesso[0]!='f')&&(sesso[0]!='M')&&(sesso[0]!='F'));

gotoxy(0,5);
printf("DATA DI NASCITA : GG/MM/AAAA");

gotoxy(19,5);

	while(1)	 {
		p=getch();
		//se si preme il tasto BACKSPACE
				if(p==8){
				//se si é nel campo GIORNO (gg)
					if((j>=0)&&(j<=1))
				{
				//si torna indietro
					gotoxy(19,5);

					printf("00");
					g=0;
					j=0;
					giorno[g]='\0';
					gotoxy(19,5);
					 }
				//se si é nel campo MESE (mm)
					 else if((j>=3) && (j<= 4))
				{
					gotoxy(22,5);
					printf("00");
					m=0;
					j=3;
					mese[m]='\0';
					gotoxy(22,5);
					 }
					//se si é nel campo anno, prime 2 cifre (aa)
					 else if((j>=6) && (j<= 7))
				{
					gotoxy(25,5);
					printf("0000");
					a=0;
					j=6;
					anno[a]='\0';
					gotoxy(25,5);
					 }
					 else if(j==8)
				{
					gotoxy(26,5);
					printf("000");
					a=0;
					j=7;
					anno[a]='\0';
					gotoxy(26,5);
					 }
					 else if(j==9)
				{
					gotoxy(27,5);
					printf("00");
					a=0;
					j=8;
					anno[a]='\0';
					gotoxy(27,5);
					 }
					 }

			//se si preme invio
				else if(p==13)  {
					giorno[2]='\0';
					mese[2]='\0';
					anno[4]='\0';
					  break;      }
				else    {

					 if(j==2)
				{
					 j=3;
					 gotoxy(22,5);
				}
				
		// accetto l'imput da tastiera (1 char alla volta)

				// il cursore (j) si trova all'interno del campo giorno gg
				if((j>=0) && (j<= 1))
				{
					 giorno[g]=p;
					 printf("%c", giorno[g]);
					 j++;
					 g++;
					 if(j==2)
				{
					 j=3;
					 gotoxy(22,5);
				}
				}
				// il cursore (j) si trova all'interno del campo mese mm
				else if((j>=3) && (j<= 4))
				{
					 mese[m]=p;
					 printf("%c", mese[m]);
					 j++;
					 m++;
					 if(j==5)
					{
					 j=6;
					 gotoxy(25,5);
					}
				}
				// il cursore (j) si trova all'interno del campo anno aaaa
				else if((j>=6) && (j<=10))
				{
					 anno[a]=p;
					 printf("%c", anno[a]);
					 j++;
					 a++;   } }  }



printf("\nIn che comune sei nato ? ");
scanf("%s",comune);
printf("%s / %s / %s",giorno,mese,anno);
}
Aiutatemi per favore *_*
(non fate caso alle troppe variabili, é che ho preso la parte dal programma completo...però questo dovrebbe funzionare da solo ;_;