Ir ao conteúdo

Posts recomendados

Postado

Uma empresa decidiu fazer um recrutamento para preencher algumas vagas. Os
candidatos serão cadastrados por computador. Faça um programa em C para:
a) Ler o número do candidato, a idade, o sexo (M/F), o estado civil (S para Solteiro/C para
Casado/D para Divorciado), a experiência profissional (S/N) e a quantidade de filhos que
a pessoa possui. O número de candidatos é indefinido, dessa forma, fazer a leitura e
registro até que o número do candidato seja negativo, para finalizar as entradas do
programa;
b) Mostrar o número total de candidatos e candidatas;
c) Mostrar o percentual de pessoas com experiência profissional (S).
d) Mostrar o percentual de pessoas acima de 50 anos de idade.
e) Mostrar o percentual dos candidatos (homens e mulheres) maiores de idade que tenham
experiência no serviço;
f) Mostrar o percentual das candidatas que não possuem filho e que são casadas.

  • Obrigado 1
Postado
1 hora atrás, Darcio lima disse:

b) Mostrar o número total de candidatos e candidatas;

Você pode declarar duas variáveis pra contagem e incrementar se baseando no sexo inserido.

1 hora atrás, Darcio lima disse:

c) Mostrar o percentual de pessoas com experiência profissional (S).

Pra isso, você tem que saber o total de pessoas. Você pode declarar outro contador e incrementar se a pessoa X tem experiência profissional. Daí é só calcular o percentual.

1 hora atrás, Darcio lima disse:

d) Mostrar o percentual de pessoas acima de 50 anos de idade.

Novamente, saiba o total de pessoas e incremente um contador se baseando na idade inserida.

 

Para o restante a ideia é a mesma, contadores e avaliar certas condições...

  • Curtir 1
  • Obrigado 1
Postado

@Darcio lima     ola ,   se voce ja tiver algum conhecimento dessa linguagem ,   entao voce pode usar uma struct para armazenar os dados ,  e depois que voce fizer um codigo sobre esse exercicio , e quiser / puder , poste ele aqui , para vermos como esta e em que podemos ajudar ,  .

  • Curtir 2
Postado

@devair1010

#include<stdio.h>
#include<conio.h>
#include<string.h>

/* Estrutra para armazenar a ficha do funcionario*/

int cod[]; /* Código (número) do funcionario*/
int idade[]; /* idade do funcionario*/
int qtdfilhos[]; /* Quantidade de filhos do funcionario*/
char civil[]; /* Estado civil do funcionario (C)- Casado e (S)- Solteiro (D)- Divorciado*/
char expe[]; /*Experiência profissional do funcionário (S)- Sim e (N)- Não*/
char sexo[]; /* Sexo do funcionario (M)- Masculino e (F)- Feminino*/
int i = 0;

int masculino();
int feminino();
float experiencia();
float idosos();
float maiores();
float casados();

//int m = masculino();
/* Programa Principal*/

int main()
{
    while (cod >= 0){
          printf(" *** Cadastro de Funcionários *** \n\n");
          printf("Informe o código do(a) funcionario(a):\n");
          scanf("%i \n\n", &cod[i]);
          printf("Informe o sexo do(a) funcionario(a):\n");
          scanf("%c \n\n", &sexo[i]);
          printf("Informe a idade do(a) funcionario(a):\n");
          scanf("%i \n\n", &idade[i]);
          printf("Informe o estado civil do(a) funcionaário(a):\n");
          scanf("%c \n\n", &civil[i]);
          printf("Informe se o(a) funcionário(a) possui experiencia:\n");
          scanf("%c \n\n", &expe[i]);
          printf("Informe a quantidade de filhos do(a) funcionaário(a):\n");
          scanf("%i \n\n", &qtdfilhos[i]);

          i++;
    }
    const int tamanho = i;

    printf(" ***** RESULTADOS ***** \n\n");
    printf("Total de funcionários: %i \n", i+1);
    printf("Total de homens: %i \n", masculino());
    printf("Total de mulheres: %i \n", feminino());
    printf("percentual com experiencia: %.2f \n", experriencia());
    printf("percentual maior de 50 anos: %.2f \n", idosos());
    printf("percentual maior de 18 com experiencia: %.2f \n", maiores());
    printf("percentual casados sem filhos: %.2f \n", cascasados());

    return 0;
}

/* Funcao para contar funcionarios do sexo masculino*/

int masculino()
{
     int total = 0;
     for (int j = 0, j <= tamanho, j++) {
         if (sexo[j] == "M"){
            total = total + 1;
         }
     printf("%i", total);
}

/*Função para contar funcionários do sexo feminino*/

int feminino()
{
     int total = 0;
     for (int j = 0, j<= tamanho, j++) {
         if (sexo[j] == "F"){
            total = total +1;
         }
     }

     printf("%i", total);
     return total;
}

/*Função para listar o percentual dos funcionarios com experiência*/

float experiencia()
{
     int contagem = 0;
     float resultado = 0;
     for (int j = 0, j<=i, j++) {
         if (expe[j] == "S") {
            contagem = contagem + 1;
         }
     }
     resultado = ((contagem * 100) / i)
     printf("%.2f", resultado);
}

/*Função para listar o percentual dos funcionarios com mais de 50 anos*/

float idosos()
{
     int contagem = 0;
     float resultado = 0;
     for (int j = 0, j<=i, j++) {
         if (idade[j] >= 50) {
            contagem = contagem + 1;
         }
     }
     resultado = ((contagem * 100) / i)
     printf("%.2f", resultado);
}

/*Função para listar o percentual dos funcionarios maiores com experiência*/

float maiores()
{
     int contagem = 0;
     float resultado = 0;
     for (int j = 0, j<=i, j++) {
         if (idade[j] >= 18) && (expe[j] == "S") {
            contagem = contagem + 1;
         }
     }
     resultado = ((contagem * 100) / i)
     printf("%.2f", resultado);
}

/*Função para listar o percentual dos funcionarios casados sem filhos*/

float casados()
{
     int contagem = 0;
     float resultado = 0;
     for (int j = 0, j <= i, j++) {
         if (civil[j] == "C") && (qtdfilhos[j] == 0) {
            contagem = contagem + 1;
         }
     }
     resultado = ((contagem * 100) / i)
     printf("%.2f", resultado);
}

teria como ver qual o problema ?

  • Obrigado 1
Postado
6 horas atrás, Darcio lima disse:
int cod[]; /* Código (número) do funcionario*/
int idade[]; /* idade do funcionario*/
int qtdfilhos[]; /* Quantidade de filhos do funcionario*/
char civil[]; /* Estado civil do funcionario (C)- Casado e (S)- Solteiro (D)- Divorciado*/
char expe[]; /*Experiência profissional do funcionário (S)- Sim e (N)- Não*/
char sexo[]; /* Sexo do funcionario (M)- Masculino e (F)- Feminino*/
int i = 0;

int masculino();
int feminino();
float experiencia();
float idosos();
float maiores();
float casados();

//int m = masculino();
/* Programa Principal*/

int main()

 

Não use variáveis globais.

 

Declare tudo dentro das funções, como main(). E passe parâmetros com os dados.

 

Essas funções se referem a valores que podem ser calculados em paralelo com a leitura e com o final da contagem. Provavelmente só precisa de uma função.

 

Evite comentários com /* */ só levam a erro. Use //

 

6 horas atrás, Darcio lima disse:
int cod[]; /* Código (número) do funcionario*/
int idade[]; /* idade do funcionario*/

 

Evite comentários óbvios como "idade do funcionário". Comente o que e porque está fazendo algo no programa.

 

Não pode declarar cod[] e nenhum desses vetores assim... Tem que ser uma constante, um valor conhecido ao compilar o programa, como cod[20];

 

6 horas atrás, Darcio lima disse:
/* Estrutra para armazenar a ficha do funcionario*/

 

Mas não declarou estrutura alguma..

 

6 horas atrás, Darcio lima disse:
   scanf("%i \n\n", &cod[i]);
          printf("Informe o sexo do(a) funcionario(a):\n");
          scanf("%c \n\n", &sexo[i]);
       

 

Teste o retorno de scanf(). Qual o sentido de continuar se não ler algo?

 

6 horas atrás, Darcio lima disse:
  printf(" ***** RESULTADOS ***** \n\n");
    printf("Total de funcionários: %i \n", i+1);
    printf("Total de homens: %i \n", masculino());
    printf("Total de mulheres: %i \n", feminino());
    printf("percentual com experiencia: %.2f \n", experriencia());
    printf("percentual maior de 50 anos: %.2f \n", idosos());
    printf("percentual maior de 18 com experiencia: %.2f \n", maiores());
    printf("percentual casados sem filhos: %.2f \n", cascasados());

 

Oito printf(0 de uma linha? Não. Use UM printf() de oito linhas... 

 

Exemplo:

 

  printf("\
***** RESULTADOS *****\n\
 \n\
Total de funcionários: %i\n\
Total de homens: %i\n\
Total de mulheres: %i\n",
    i+1, masculino(), feminino());

 

 

  • Curtir 1
  • Obrigado 1
Postado

@Darcio lima    seu código não está compilando ,    e corrigindo alguns erros  ficou assim  apenas para compilar  :

#include  <stdio.h>
#include  <ctype.h>
#include  <conio.h>
#include  <string.h>
///   Estrutra para armazenar a ficha do funcionario
typedef struct
{
    int  idade;
    int  cod;
    int  qtdfilhos;
    int  qtd_func;
    char sexo;
    char civil;
    char expe;
}empresa;

int  cod      [10];                /// Código (número) do funcionario
int  idade    [10];                /// idade do funcionario
int  qtdfilhos[10];                /// Quantidade de filhos do funcionario
char civil    [10];                /// Estado civil do funcionario (C)- Casado e (S)- Solteiro (D)- Divorciado
char expe     [10];                /// Experiência profissional do funcionário (S)- Sim e (N)- Não
char sexo     [10];                /// Sexo do funcionario (M)- Masculino e (F)- Feminino

int   masculino  ( int , char* );
int   feminino   ( int , char* );
float experiencia( int , char* );
float idosos     ( int , int * );
float maiores    ( int , int * );
float casados    ( int , char* );
                                                 /// int m = masculino();
                                                 /// Programa Principal
int main()
{
    int i  = 0;
    cod[i] = 0;
    empresa func[10];  /// vetor de estrutura para armazenar 10 blocos de dados
    while ( cod[ i ] >= 0 )
    {
        printf("      *** Cadastro de Funcionários ***\n\n\
             \rInforme o código do(a) funcionario(a) ----------------: ");
        scanf("%d", &cod[i]);                    /// d de Decimal
        if( cod[i] < 0 )break;
        printf("Informe a quantidade de filhos do(a) funcionaário(a) -: ");
        scanf("%d", &qtdfilhos[i]);
        printf("Informe a idade do(a) funcionario(a) -----------------: ");
        scanf("%d", &idade[i]);
        printf("Informe o sexo do(a) funcionario(a) ------------------: ");
        scanf("%c", &sexo[i]);
        getchar();                               /// tenta limpar o buffer
        sexo[i] = toupper(sexo[i]);              /// em cx alta
        printf("Informe o estado civil do(a) funcionaário(a) ---------: ");
        scanf("%c", &civil[i]);
        getchar();                               /// tentativa de limpar o buffer do teclado
        civil[i] = toupper(civil[i]);            /// passa a letra para muscuLa
        printf("Informe se o(a) funcionário(a) possui experiencia ----: ");
        scanf("%c", &expe[i]);
        getchar();                               /// pega um caractere no buffer do teclado q pode ser o newLine
        expe[i] = toupper(expe[i]);
        i++;
    }
    const int tamanho = i;
    printf("\n           ***** RESULTADOS *****             \n\n\
            \r Total de funcionários -------------------: %3d \n\
            \r Total de homens -------------------------: %3d \n\
            \r Total de mulheres -----------------------: %3d \n\
            \r percentual com experiencia --------------: %.2f\n\
            \r percentual maior de 50 anos -------------: %.2f\n\
            \r percentual maior de 18 com experiencia --: %.2f\n\
            \r percentual casados sem filhos -----------: %.2f\n",
            i+1  , masculino( i , sexo ) , feminino( i   , sexo ),
            experiencia( i , sexo ) , idosos( i , idade   )      ,
            maiores    ( i , idade ), casados ( i , civil )     );
    return 0;
}
                                                 /// Funcao para contar funcionarios do sexo masculino
int masculino(int tamanho, char sexo[])
{
    int total = 0,j;
    for ( j = 0; j < tamanho; j++)
        if (sexo[j] == 'M')                      /// comparar caractere eh com aspas simples mesmo
            total = total + 1;

     printf("%i", total);
}

                                                 /// Funcao para contar funcionários do sexo feminino

int feminino( int tamanho , char sexo[] )
{
    int total = 0,j;
    for ( j = 0; j< tamanho; j++)               /// eh ponto e virgula
    {
        if (sexo[j] == 'F')                      /// comparar caractere eh com aspas simples
        {
            total = total +1;
        }
    }
    printf("%i", total);
    return total;
}
                                                 ///  Função para listar o percentual dos funcionarios com experiência
float experiencia( int tamanho , char sexo[] )
{
    int contagem = 0,j;
    float resultado = 0;
    for ( j = 0; j<tamanho; j++)
    {
        if (expe[j] == 'S')                      ///  compara caractere  aspas simples
        {
            contagem = contagem + 1;
        }
    }
    resultado = ((contagem * 100) / tamanho);    /// faltou ponto e virgula
    printf("%.2f", resultado);
    return resultado;
}
                                                 ///  Função para listar o percentual dos funcionarios com mais de 50 anos
float idosos( int tamanho , int idade[] )
{
    int contagem = 0,j;
    float resultado = 0;
    for ( j = 0; j<tamanho; j++)
    {
        if (idade[j] >= 50)
        {
            contagem = contagem + 1;
        }
    }
    resultado = ((contagem * 100) / tamanho);    /// faltou ponto e virgula
    printf("%.2f", resultado);
    return resultado;
}
                                                 ///  Função para listar o percentual dos funcionarios maiores com experiência
float maiores( int tamanho , int idade[] )
{
    int contagem = 0,j;
    float resultado = 0;
    for ( j = 0; j<tamanho; j++)                 /// eh ponto e virgula
    {
        if (idade[j] >= 18 && expe[j] == 'S')    /// caomparar caractere eh com aspas simles
        {
            contagem = contagem + 1;
        }
    }
    resultado = ((contagem * 100) / tamanho);    /// faltou ponto e virgula
    printf("%.2f", resultado);
    return resultado;
}
                                                 ///  Função para listar o percentual dos funcionarios casados sem filhos
float casados( int tamanho , char civil[] )
{
    int contagem = 0,j;
    float resultado = 0;
    for ( j = 0; j <tamanho; j++)
    {
        if (civil[j] == 'C'&& qtdfilhos[j] == 0) /// tudo entre parenteses e aspas smples na comparacao
        {
            contagem = contagem + 1;
        }
    }
    resultado = ((contagem * 100) / tamanho);    /// faltou ponto e virgula
    printf("%.2f", resultado);
    return resultado;
}

fazer cálculos é muito chato !  ,   veja aí e  concerte  ,   e outro detalhes como disse  @arfneto   .

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...