btc_cesar
(usa Fedora)
Enviado em 16/03/2009 - 18:50h
Na verdade, seu código estava imprimindo corretamente sim, só tava sem formatação...
Dei uma mexida básica onde pude, mas lembre-se de dar um tratamento ao seu código porque os os dias têm que ir até no máximo 31 e os meses até 12.
Segue abaixo o seu código com algumas modificações:
#include <stdio.h>
#include <conio.h>
#define MFUNC 2
#define MAX 100
typedef struct
{
int dia, mes, ano;
}tdata;
typedef struct
{
char nome[MAX];
tdata dtnasc;
}tpessoa;
typedef struct
{
tpessoa func;
tdata dtadm, dtdem;
}tfunc;
void lefunc (tfunc *pfunc);
void ledata (tdata *pdata);
main()
{
tfunc funcionario[MFUNC];
int cont;
//clrscr();
for(cont=0;cont<MFUNC;cont++)
{
lefunc(&funcionario[cont]);
}
for(cont=0;cont<MFUNC;cont++)
{
printf("\n%s\n",funcionario[cont].func.nome);
printf("%d\n",funcionario[cont].func.dtnasc.dia);
printf("%d\n",funcionario[cont].func.dtnasc.mes);
printf("%d\n",funcionario[cont].func.dtnasc.ano);
}
getch();
}
void ledata (tdata *pdata)
{
printf("dia: ");
scanf("%d",&pdata->dia);
fflush(stdin);
printf("mes: ");
scanf("%d",&pdata->mes);
fflush(stdin);
printf("ano: ");
scanf("%d",&pdata->ano);
fflush(stdin);
}
void lefunc (tfunc *pfunc)
{
printf("digite o nome: ");
gets(pfunc->func.nome);
fflush(stdin);
printf("digite a data de nascimento\n");
ledata(&pfunc->func.dtnasc);
fflush(stdin);
}