Testanto média em array linguagem C

Comecei a tentar aprender a linguagem C para disciplina na faculdade faz dois dias, e estou tendo problemas com meu código. Nele, preciso receber através de um array do tipo float 5 salários de funcionários. Após, preciso que esses salários recebam um aumento em porcentagem conforme o seu valor. Até aí tudo bem, mas quando faço a média desses novos salários, o resultado da média não está conforme a soma e a divisão pelo total de salários (5). Não estou conseguindo entender o porque, se alguém pouder me ajudar nessa parte. Segue abaixo o código completo.

#include <stdio.h>
#include <stdlib.h>


int main() {
    int c = 0;
    float salariosNovos;
// definino o vetor quantidade de salarios.    
    float salarios[5];
    float *valorSalario;
    valorSalario = salarios;



//recebendo os dados do vetor.
while (c < 5){
    printf("Digite o salário %d: ", c);
    scanf("%f", &salarios[c]);
   
    printf("O Salario original e %d = %.2f\n", c, &salarios[c]);

    if(salarios[c] > 5900) {
       salariosNovos =  (0.5 * salarios[c]) + salarios[c];
       printf("O Salario reajustado e  = %.2f\n", salariosNovos);

    } else if (salarios[c] <= 5900) {
        salariosNovos =  (0.5 * salarios[c]) + salarios[c];
        printf("O Salario reajustado e = %.2f\n", salariosNovos);
    }
    else {
        salariosNovos = (1.5 * salarios[c]) + salarios[c];
        printf("O Salario reajustado e = %.2f\n",  salariosNovos);
    }
     c++;
    }

 // somando os salários com o reajuste e fazendo a média entre eles:
  for(c = 0; c < 5; c++); {
        double soma = 0;
        soma = soma + salariosNovos;
        double media = soma / 5;
         // imprimindo na tela os resultados.

        printf("\nA soma dos sálarios reajustados é: %.2f", soma);
        printf("\nA media entre eles é: %.2f",  media );
    }
    return 0;

}

  • A variável soma deve ser declarada e inicializada FORA do for.
  • A variável media deve ser declarada fora do for.
  • Após o for do somatório, calcule a média e apresente.
1 curtida

Isso aqui está estranho:

  • se o valor for maior que 5900, entra no if
  • se for menor ou igual a 5900, entra no else if
  • aí já se esgotaram todas as possibilidades (pois ou o número é maior que 5900, ou é menor ou igual, não existe uma terceira possibilidade). Ou seja, ele nunca vai entrar no último else
1 curtida

Obrigada. Eu dei uma nova olhada no código, fiz essas alterações e outras que me indicaram aqui e o código funcionou direitinho :slight_smile:

Obrigada! Realmente eu tinha me enganado nessa parte. Só iniciante e ainda fico confusa com a parte da lógica. Mas agora o código já eu certo!