Ir ao conteúdo
  • Cadastre-se

C Problema para calcular a média em C


Ir à solução Resolvido por isrnick,

Posts recomendados

  • Moderador

Boa noite, eu estou tentando fazer um programa que tem o intuito de receber 10 salários de funcionários, dizer quantos deles possuem salário acima de 1500 reais e calcular a média dos salários. 

O programa lê os salários, informa quantos funcionários recebem mais que 1500 reais mas eu não sei como calcular a média, já que a variável que armazena o salário muda de valor 10 vezes. 

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <locale.h>

    int main() {
      setlocale(LC_ALL,"");
      float salario;
      float mediadossalarios;
      int acimade1500 = 0;
      int i;
      
     
            for(i = 1; i <= 10; i++) {
                
                printf("Qual o salário do funcionário %d : \t", i);
                scanf("%f", &salario);
               
        
                if(salario > 1500) {
                    (acimade1500++);
                }
                
                    
                
    
            }
              if (i = 10) {
                printf("Existe(m) %d funcionário(s) ganhando acima de 1500 reais.", acimade1500);
                    }
            
        return 0;       
    }

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Média é igual a soma de todos os salários dividido pela quantidade de salários, então use uma variável para ir somando cada salário que é digitado, e no fim divida o resultado final da soma pela quantidade de salários, ou seja 10 salários, para obter a média.

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

  • Moderador

@isrnick Obrigado. Eis como ficou:

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <locale.h>

    int main() {
      setlocale(LC_ALL,"");
      float salario;
      int acimade1500 = 0;
      int i;
      float salariototal = 0;
      
      
            for(i = 1; i <= 10; i++) {
                
                printf("Qual o salário do funcionário %d : \t", i);
                scanf("%f", &salario);
                (salariototal += salario);
                
                
        
                if(salario > 1500) {
                    (acimade1500++);
                }
                
                    
                
    
            }
              if (i = 10) {
                printf("\nExiste(m) %d funcionário(s) ganhando acima de 1500 reais.", acimade1500);
                
                printf("\nA média dos salários é : %g", salariototal / 10);
                    }
            
        return 0;       
    }

 

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

  • Membro VIP

Só complementando.

 

1#

@Batata Defumada, sempre mantenha o código indentado.

 

Uma dica bacana para ajudar é usando esse site:

https://www.tutorialspoint.com/online_c_formatter.htm

 

Fazendo alguns ajustes, poderia ficar assim:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <locale.h>    

int main() {
    setlocale(LC_ALL,"");
    float salario;
    int acimade1500 = 0;
    int i;
    float salariototal = 0;

    for(i = 1; i <= 10; i++) {
        printf("Qual o salário do funcionário %d : \t", i);
        scanf("%f", &salario);
        salariototal += salario;
        if (salario > 1500) {
            acimade1500++;
        }
    }
    if (i = 10) {
        printf("\nExiste(m) %d funcionário(s) ganhando acima de 1500 reais.", acimade1500);
        printf("\nA média dos salários é : %g", salariototal / 10);
    }
    return 0;
}

 

 

 

2#

Sobre:

14 horas atrás, Batata Defumada disse:

    if (i = 10) {
        printf("\nExiste(m) %d funcionário(s) ganhando acima de 1500 reais.", acimade1500);
        printf("\nA média dos salários é : %g", salariototal / 10);
    }


Quando esse if é executado, o valor de i sempre estará com 10, logo não sendo necessário esta estrutura de seleção.

 

 

Alguns outros pontos poderia ser revistos... segue abaixo um código resumindo-os.

#include <stdio.h>
//#include <stdlib.h>   NÃO ESTÁ SENDO UTILIZADA
//#include <conio.h>    NÃO ESTÁ SENDO UTILIZADA
//#include <ctype.h>    NÃO ESTÁ SENDO UTILIZADA
#include <locale.h>    

int main() {
    setlocale(LC_ALL,"");
    float salario;
    int   acimade1500 = 0;
    float salariototal = 0;
    int   i;

    for (i = 1; i <= 10; i++) {
        printf("Qual o salário do funcionário %d : \t", i);
        scanf("%f", &salario);
        salariototal += salario;
        if (salario > 1500) //{ Para uma instrução as {} são facultativas... mas tb não vejo problema se deixar... 
            acimade1500++;
        //}
    }
    // if (i = 10) {   ESSE IF NÃO TEM UTILIDADE, POIS SEMPRE I VAI SER IGUAL A 10
    printf("\nExiste(m) %d funcionário(s) ganhando acima de 1500 reais.", acimade1500);
    printf("\nA média dos salários é : %g", salariototal / 10);
    //}
    return 0;
}

 

 

 

***

 

Att

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

  • Moderador

@Simon Viegas Obrigado pelas dicas. Em relação ao if ( i =10) eu tinha colocado isso porque por algum motivo não tava esperando o "for" acabar pra imprimir aquela mensagem na tela então a cada valor inserido já printava aquilo, deve que estava dentro do bloco de instrução do for por isso estava dando errado e eu não percebi, enfim obrigado novamente.

  • Curtir 2
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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!