Uma empresa de informática comercializa um programa para gerenciar o cadastro de informações dos funcionários de empresas. Uma determinada empresa, com 8 departamentos, adquiriu o programa e, ao executar o programa pela primeira vez, informou o número de funcionários e as informações de cada funcionário. As informações armazenadas são nome (cadeia de caracteres), idade (inteiro), sexo (caractere), tempo de casa, em anos (inteiro), departamento (inteiro) e salário (em reais). Escreva um programa em C para realizar as seguintes operações:
c. O número de funcionários do sexo feminino;
c. O número de funcionários do sexo feminino;
Passo 1
O enunciado pede para ler os dados de n funcionários (nome, idade, sexo, tempo de casa, departamento e salário) e contar quantos são do sexo feminino.
Passo 2
Para representar cada funcionário em C, usamos uma struct com campos adequados: cadeia para nome, inteiro para idade, caractere para sexo, inteiro para tempo de casa, inteiro para departamento e float para salário.
Passo 3
Lemos o número total de funcionários n e, dentro de um laço for que vai de 0 até n−1, fazemos scanf para cada campo. Em seguida, usamos um if para testar se o sexo é ‘F’ ou ‘f’ e, em caso afirmativo, incrementamos um contador.
Passo 4
Ao final do laço, imprimimos o valor do contador, que representa o número de funcionárias do sexo feminino.
Resposta
#include <stdio.h>
#define MAX_NOME 100
typedef struct {
char nome[MAX_NOME];
int idade;
char sexo;
int tempo_casa;
int departamento;
float salario;
} Funcionario;
char nome[MAX_NOME];
int idade;
char sexo;
int tempo_casa;
int departamento;
float salario;
} Funcionario;
int main() {
int n, i;
int contF = 0;
Funcionario f;
int n, i;
int contF = 0;
Funcionario f;
// lê o número de funcionários
if (scanf("%d", &n) != 1) return 1;
// para cada funcionário, lê os dados e conta se for do sexo feminino
for (i = 0; i < n; i++) {
// espaço antes de %%c para descartar qualquer whitespace
scanf("%s %d %c %d %d %f", f.nome, &f.idade, &f.sexo, &f.tempo_casa, &f.departamento, &f.salario);
if (f.sexo == 'F' || f.sexo == 'f') {
contF++;
}
}
// imprime o número de funcionárias do sexo feminino
printf("%d\n", contF);
return 0;
}