Ir ao conteúdo
  • Cadastre-se

C Dificuldade em um exercicio


Jeffrey54

Posts recomendados

Pessoal estou desenvolvendo a programação em c, e estou com dificuldade em uma atividade. 

Alguém pode me ajudar?

 

O problema é o seguinte:

 

Crie um programa onde o usuário irá inserir sucessivamente o salário e o sexo (F/M) de um funcionário, quando parar a execução do programa deve se fazer a média do salário dos sexos masculinos.

 

Um abraço, e obrigado desde já.

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Jeffrey54    você pode colocar um loop  while que se repita até que digite uma tecla como por exemplo esc , e dentro coloque o comando scanf para pegar os dados e guarde-os em um vetor , e use um contador para posicionar os dados nas várias posições de cada vetor , que será um para o salário e outro para o sexo , e no final use um loop for para pesquisar no vetor e fazer a soma das pessoas de sexo masculinos e depois dividir pelo contador , que é o total de pessoas , e essa será a média .   então faça seu código e poste aqui para vermos como está e em que podemos ajudar   .

  • Curtir 1
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

@devair1010 E @Lucca Rodrigues

 

Obrigado pela força...

Estou cm dificuldades em fazer a soma dos salários masculinos, para realizar a media, não conseguindo fazer essa parte.

 

ISSO AQUI FOI o que EU JÁ CONSEGUIR FAZER: 

 

#include <stdio.h>
main(){
int cont, p;
float salario, media, total;
total=0;
char sexo;
while( p != 0){

        printf("\nInforme o salario do funcionario...: ");
        scanf("%f", &salario);
        total= total + salario;
        cont++;
        printf("\nInforme o sexo...? Digite 1(M) ou 2(F)...: ");
        scanf("%s", &sexo);
        printf("\nDigite um numero ou zero para sair...: ");
        scanf("%d", &p);
        };

        if(sexo = 1){
            printf("O salario total do homes e de...:%f", salario);
        }


}

 

Bom de fato não sei o que fazer kkkkk.... =(

Ta dando uma baita desespero aqui.
 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Jeffrey54 Bom... Acho que o certo é avaliar se o sexo entrado é incorreto: se for diferente de M ou F, sai do loop.

Leia um char, não uma string. Para tanto, use %c como identificador, não %s, até porque o que você declarou um char, não uma string.

E você também não pode apenas ir somando o salário e imprimir depois, você tem que identificar se o funcionário é um homem e, caso for, então somar este valor ao total do salário dos homens, daí tem que criar uma variável somente pra isso, e também uma para contar quantos homens são no total.

Para avaliar um char, primeiramente use ==, pois isso é comparação, se usar apenas =, é atribuição.

E use 'letra', se colocar só a letra, não vai funcionar.

Tente isso:

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_ALL, "Portuguese");
    int cont = 0, contm = 0, contf = 0;
    float salario = 0, salariom = 0, salariof = 0, media;
    char sexo;
    do{
        cont += 1;
        printf("\nInforme o salário do funcionário %d: ", cont);
        scanf("%f", &salario);
        printf("\nInforme o sexo do funcionário %d (M/F): ", cont);
        scanf("\n%c", &sexo);
        if (sexo == 'M'){
            salariom += salario;
            contm += 1;
        } else if (sexo == 'F'){
            salariof += salario;
            contf += 1;
        }
    }while((sexo == 'M') || (sexo == 'F'));
    media = salariom/contm;
    printf("\nO salário total do homens é de: %.2f", media);
    
    return 0;
}

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Jeffrey54    nesse exercício , só será  computador os dados referentes aos homens , assim não precisa armazenar outros dados ,  então seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <windows.h>
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int l, int f){SetConsoleTextAttribute(H,l+(f<<4));}
int main(){
    int   masculino=0;
    float salario,total=0;
    char  sexo;
    do{
        printf(" Informe o salario do funcionario...: ");
        fflush(stdin);
        scanf("%f",&salario);
        printf(" Informe o sexo  M / F ");
        fflush(stdin);
        scanf("%c",&sexo);
        if( toupper(sexo) == 'M' ){
            total += salario;
            masculino++;
        }
        printf(" Pesquisar Outro Funcionario  S / N\n\n");
    }while( toupper((char)getch()) != 'N' );
    textcolor_2(12,15);
    printf("  A Media Dos Salarios dos Homens eh De ...: %.2f  \n\n\n",
          (float)(total / masculino));
    textcolor_2(10,12);
    return 0;
}

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

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...