Faça um programa que armazene em um registro de dados (estrutura composta) os dados de um funcionário de uma empresa, compostos de: Nome, Idade, Sexo (M/F), CPF, Data de Nascimento, Código do Setor onde trabalha (0-99), Cargo que ocupa (string de até 30 caracteres) e Salário. Os dados devem ser digitados pelo usuário, armazenados na estrutura e exibidos na tela.

Passo 1

O enunciado pede para criarmos um programa em C que leia vários dados de um funcionário (nome, idade, sexo, CPF, data de nascimento, código do setor, cargo e salário), armazene tudo numa estrutura composta (registro) e depois exiba esses dados.

Passo 2

Definimos uma struct chamada Funcionario com os campos indicados: uma string para o nome, um inteiro para a idade, um char para o sexo, outra string para o CPF, mais uma string para a data de nascimento, um inteiro para o código do setor, uma string para o cargo e um float (ou double) para o salário.

Passo 3

Dentro da função main declaramos uma variável do tipo struct Funcionario. Em seguida, fazemos prompts usando printf e lemos a entrada do usuário com scanf ou fgets (para capturar strings com espaços) e getchar (para limpar o buffer quando necessário).

Passo 4

Após ler todos os campos, usamos printf para exibir cada um dos dados armazenados na struct de forma organizada. Isso conclui a leitura, o armazenamento e a exibição exigidos pelo enunciado.

Resposta

#include <stdio.h>
#include <string.h>
#define MAX 100
struct Funcionario {
char nome[MAX];
int idade;
char sexo;
char cpf[15]; // formato “000.000.000-00”
char dataNasc[12]; // formato “DD/MM/AAAA”
int codSetor;
char cargo[31];
double salario;
};
int main() {
struct Funcionario f;
printf("Digite o nome: ");
fgets(f.nome, MAX, stdin);
f.nome[strcspn(f.nome, "\n")] = '\0';  // remove \n

printf("Digite a idade: ");
scanf("%d", &f.idade);

printf("Digite o sexo (M/F): ");
scanf(" %c", &f.sexo);

printf("Digite o CPF (000.000.000-00): ");
scanf(" %14[^"]", f.cpf);

printf("Digite a data de nascimento (DD/MM/AAAA): ");
scanf(" %11[^"]", f.dataNasc);

printf("Digite o código do setor (0-99): ");
scanf("%d", &f.codSetor);

// descarta o \n remanescente
getchar();

printf("Digite o cargo: ");
fgets(f.cargo, 31, stdin);
f.cargo[strcspn(f.cargo, "\n")] = '\0';

printf("Digite o salário: ");
scanf("%lf", &f.salario);

printf("\n--- Dados do Funcionário ---\n");
printf("Nome: %s\n", f.nome);
printf("Idade: %d\n", f.idade);
printf("Sexo: %c\n", f.sexo);
printf("CPF: %s\n", f.cpf);
printf("Data de Nascimento: %s\n", f.dataNasc);
printf("Código do Setor: %d\n", f.codSetor);
printf("Cargo: %s\n", f.cargo);
printf("Salário: %.2f\n", f.salario);

return 0;
}

Exercícios relacionados