Informática, perguntado por larissinhafirmino, 11 meses atrás

Não estou conseguindo fazer esse exercicio proposto pelo professor, já que minha media está dando erro e eu ainda não entendi direto o que é realloc (alguém pode me ajudar?)



Desenvolva um programa que receba o salário de uma quantidade indeterminada de pessoas e ao final exiba: (em c)

Obs.: tem que ter o realloc

a)Todos os salários


b)A média entre todos os salários digitados


c)O maior e o menor salário.



*Meu programa até o momento*


#include

#include

#include


int main(void) {


setlocale(LC_ALL,"");

float *salario, soma=0, media=0.0;

int quantidadef = 1 , i, pessoas = 0;


printf("\nQuantos funcionarios são: ");

scanf("%d", &quantidadef);


salario =calloc (quantidadef, sizeof(float));


for(i=0;i
printf("\nEntre com o salario %i: ", i+1);

scanf("%f", &*salario);


media = (pessoas + *salario)/ quantidadef;


}

printf("\nA média dos salários é: %.2f", media);


free(salario);

return 0;

}

Soluções para a tarefa

Respondido por Jamesribeiro
1

Resposta:

#include <stdio.h>

#include <stdlib.h>

int main() {

   int quantidade = 0;

   double media = 0.0;

   double *salario = malloc(sizeof(double));

   printf("Quantidade de pessoas: ");

   scanf(" %i%*c", &quantidade);

   salario = realloc(salario, quantidade * sizeof(double));

   for(int i = 0; i < quantidade; i++) {

       printf("Digite o salario: R$ ");

       scanf(" %lf%*c", &salario[i]);

       media += salario[i];

   }

   if(quantidade != 0) {

       media /= quantidade;

   }

   printf("Media: R$ %.2f \n", media);

   return EXIT_SUCCESS;

}

Perguntas interessantes