Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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);
}obrigado guidjos, ajudou muito kra
Sugiro a seguinte organização:
#include <stdio.h>
struct data
{
struct funcionario
{
void mostrar(struct funcionario quem)
{
printf("\n\tNome: %s\n\tIdade: %d/%d/%d\n\n",
quem.nome, quem.nascimento.dia,
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.