Para resolução desse problema, podemos armazenar as leituras em structs, assim, primeiramente criaremos uma struct e depois um vetor com 3823 posições que corresponde a todos candidatos.
#include <iostream>
using namespace std;
typedef struct {
int inscricao;
int idade;
char sexo;
char experiencia;
}candidatos;
candidatos candidato[3823];
Com isso, podemos receber todos os valores dos 3823 candidatos.
int main()
{
for(int i=0;i<3824;i++){
cout<<"Candidato"<<i+1<<endl;
cout<<"Inscrição:"<<endl;
cin >> candidato[i].inscricao;
cout<<"Idade:"<<endl;
cin >> candidato[i].idade;
cout<<"Sexo (M ou F):"<<endl;
cin >> candidato[i].sexo;
cout<<"Experiencia (S ou N):"<<endl;
cin >> candidato[i].experiencia;
}
Agora podemos partir para a declaração de variáveis úteis nos cálculos que serão feitos a respeito da segunda questão.
⁄⁄calculo
int quantidade_Sfeminino=0;
int quantidade_sMasculino=0;
int somatorio_idade;
float idademedia_homens_com_experiencia=0;
int quantidade_homens_com_experiencia=0;
float homens_menos35=0;
int mulheres_mais35=0;
int inscricao[3823];
Assim, podemos iniciar a varredura em todas as candidaturas a partir do sexo, assim conseguiremos realizar os demais cálculos.
for(int i=0;i<3824;i++){
if(candidato[i].sexo==´f´||candidato[i].sexo==´f´){
Caso o candidato seja mulher, devemos incrementar o contador de mulheres e verificar se a mesma possui experiencia e tem mais que 35 anos, se tudo for verdade, a variável mulher_mais35 também será acrescida e a matricula do candidato é salva em um vetor. Com isso teremos que:
quantidade_Sfeminino++;
if(candidato[i].experiencia==´s´||candidato[i].experiencia==´S´){
if(candidato[i].idade>35){
inscricao[mulheres_mais35]= candidato[i].inscricao;
mulheres_mais35++;
}
}
}
Caso o candidato não seja do sexo feminino, logo ele será do sexo masculino, assim, utilizar o comando else e incrementar na variável que conta a quantidade do sexo masculino.
else{
quantidade_sMasculino;
Agora verificaremos se o mesmo possui experiencia, caso tenha salvaremos o somatório de todas as idades para estabelecer a media posteriormente e a um acréscimo na quantidade de homens com experiencia. Assim:
if(candidato[i].experiencia==´s´||candidato[i].experiencia==´S´){
somatorio_idade=somatorio_idade+candidato[i].idade;
quantidade_homens_com_experiencia++;
Caso o candidato ainda possua idade menor que 35 anos, a variável homem_menos35 será acrescida. Assim:
if(candidato[i].idade<35){
homens_menos35++;
}
}
}
}
Agora podemos realizar os cálculos de porcentagem e de media. Com isso:
idademedia_homens_com_experiencia=somatorio_idade⁄quantidade_homens_com_experiencia;
homens_menos35=(homens_menos35⁄3823)*100;
float por_mulheres_mais35=(mulheres_mais35⁄3823)*100;
Por fim, devemos mostrar ao usuário todos os dados calculados.
cout<<"Matriculas de mulheres com experiencia e idade<35";
for(int i=0;i<mulheres_mais35;i++){
cout<<inscricao[mulheres_mais35]<<endl;
}
cout<<"Mulheres inscritas"<<quantidade_Sfeminino<<endl;
cout<<"Homens inscritos"<<quantidade_sMasculino<<endl;
cout<<"Idade media de homens com experiencia"<< idademedia_homens_com_experiencia<<endl;
cout<<"% de homens com experiencia e idade<35"<<homens_menos35<<endl;
cout<<"% de mulheres com experiencia e idade>35"<<por_mulheres_mais35<<endl;
return 0;
}
Para resolução desse problema, podemos armazenar as leituras em structs, assim, primeiramente criaremos uma struct e depois um vetor com 3823 posições que corresponde a todos candidatos.
#include <iostream>
using namespace std;
typedef struct {
int inscricao;
int idade;
char sexo;
char experiencia;
}candidatos;
candidatos candidato[3823];
Com isso, podemos receber todos os valores dos 3823 candidatos.
int main()
{
for(int i=0;i<3824;i++){
cout<<"Candidato"<<i+1<<endl;
cout<<"Inscrição:"<<endl;
cin >> candidato[i].inscricao;
cout<<"Idade:"<<endl;
cin >> candidato[i].idade;
cout<<"Sexo (M ou F):"<<endl;
cin >> candidato[i].sexo;
cout<<"Experiencia (S ou N):"<<endl;
cin >> candidato[i].experiencia;
}
Agora podemos partir para a declaração de variáveis úteis nos cálculos que serão feitos a respeito da segunda questão.
//calculo
int quantidade_Sfeminino=0;
int quantidade_sMasculino=0;
int somatorio_idade;
float idademedia_homens_com_experiencia=0;
int quantidade_homens_com_experiencia=0;
float homens_menos35=0;
int mulheres_mais35=0;
int inscricao[3823];
Assim, podemos iniciar a varredura em todas as candidaturas a partir do sexo, assim conseguiremos realizar os demais cálculos.
for(int i=0;i<3824;i++){
if(candidato[i].sexo=='f'||candidato[i].sexo=='f'){
Caso o candidato seja mulher, devemos incrementar o contador de mulheres e verificar se a mesma possui experiencia e tem mais que 35 anos, se tudo for verdade, a variável mulher_mais35 também será acrescida e a matricula do candidato é salva em um vetor. Com isso teremos que:
quantidade_Sfeminino++;
if(candidato[i].experiencia=='s'||candidato[i].experiencia=='S'){
if(candidato[i].idade>35){
inscricao[mulheres_mais35]= candidato[i].inscricao;
mulheres_mais35++;
}
}
}
Caso o candidato não seja do sexo feminino, logo ele será do sexo masculino, assim, utilizar o comando else e incrementar na variável que conta a quantidade do sexo masculino.
else{
quantidade_sMasculino;
Agora verificaremos se o mesmo possui experiencia, caso tenha salvaremos o somatório de todas as idades para estabelecer a media posteriormente e a um acréscimo na quantidade de homens com experiencia. Assim:
if(candidato[i].experiencia=='s'||candidato[i].experiencia=='S'){
somatorio_idade=somatorio_idade+candidato[i].idade;
quantidade_homens_com_experiencia++;
Caso o candidato ainda possua idade menor que 35 anos, a variável homem_menos35 será acrescida. Assim:
if(candidato[i].idade<35){
homens_menos35++;
}
}
}
}
Agora podemos realizar os cálculos de porcentagem e de media. Com isso:
idademedia_homens_com_experiencia=somatorio_idade/quantidade_homens_com_experiencia;
homens_menos35=(homens_menos35/3823)*100;
float por_mulheres_mais35=(mulheres_mais35/3823)*100;
Por fim, devemos mostrar ao usuário todos os dados calculados.
cout<<"Matriculas de mulheres com experiencia e idade<35";
for(int i=0;i<mulheres_mais35;i++){
cout<<inscricao[mulheres_mais35]<<endl;
}
cout<<"Mulheres inscritas"<<quantidade_Sfeminino<<endl;
cout<<"Homens inscritos"<<quantidade_sMasculino<<endl;
cout<<"Idade media de homens com experiencia"<< idademedia_homens_com_experiencia<<endl;
cout<<"% de homens com experiencia e idade<35"<<homens_menos35<<endl;
cout<<"% de mulheres com experiencia e idade>35"<<por_mulheres_mais35<<endl;
return 0;
}
Para escrever sua resposta aqui, entre ou crie uma conta.
Algoritmos e Linguagem de Programação
•IFPA
Compartilhar