ulfreitas 6 Denunciar post Postado Março 10, 2012 Bom dia Esse código é um cadastro de funcionário, ele possui 3 estruturas. 1º) data recebe a data de nascimento; 2º) pessoa recebe o nome, e possui a estrutura data; 3º) funcionario possui a estrutura pessoa. Tem uma função de leitura para ler todos os dados e depois exibe o cadastro do kra; minha dúvida é, na hora de acessar fica estranho muito grande, to fazendo certo? tem como melhorar isso? #include <stdio.h> typedef struct data{ int dia, mes, ano; }; typedef struct pessoa{ char nome [30]; data dtnasc; }; typedef struct funcionario{ pessoa func; }; void ler(funcionario *f); int main(){ funcionario f1; ler(&f1); printf("\n\n"); printf("Nome: %s\n",f1.func.nome); printf("Data nascimento: %d\\%d\\%d\n",f1.func.dtnasc.dia, f1.func.dtnasc.mes, f1.func.dtnasc.ano); return 0; } void ler(funcionario *f){ printf("Digite o nome: "); gets(f -> func.nome); printf("\nDia: "); scanf("%d%*c",&f -> func.dtnasc.dia); printf("\nDia: "); scanf("%d%*c",&f -> func.dtnasc.mes); printf("\nDia: "); scanf("%d%*c",&f ->func.dtnasc.ano); } Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Março 11, 2012 Sugiro a seguinte organização: #include <stdio.h> struct data { unsigned char dia, mes; unsigned int ano; }; struct funcionario { char nome[300]; struct data nascimento; }; void mostrar(struct funcionario quem) { printf("\n\tNome: %s\n\tIdade: %d/%d/%d\n\n", quem.nome, quem.nascimento.dia, quem.nascimento.mes, quem.nascimento.ano); } int main(void) { mostrar((struct funcionario) { "Juliana", (struct data) { 20, 2, 2002 } }); } Compilação: gcc -std=c99 -Wall -Wextra -pedantic -Werror [arquivo].c -o [nome] Aliás, evite gets. Use fgets. Compartilhar este post Link para o post Compartilhar em outros sites
ulfreitas 6 Denunciar post Postado Março 15, 2012 obrigado guidjos, ajudou muito kra Compartilhar este post Link para o post Compartilhar em outros sites