Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Batata Defumada

C RESOLVIDO Problema para calcular a média em C

Recommended Posts

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;       
    }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

@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;       
    }

 

Editado por Batata Defumada
  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×