Advertisement
Gabriel_Rofl

Untitled

Oct 1st, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. /*
  2.  
  3. Nome do Arquivo: 1.c
  4.  
  5. Nome do Aluno: Gabriel Cunha Bessa Vieira
  6.  
  7. Matricula: 16/0120811  
  8.  
  9. Descrição: Lê o nome, salario, cargo, departamento e a data de admissao. Faz a média aritmética dos salarios dos funcionarios e printa os funcionarios que possuem salario maior que a média.
  10.  
  11.  
  12. */
  13.  
  14. /*---------------------------------------------------------*/
  15.  
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18.  
  19.  
  20. typedef struct{
  21.     char *nome, *cargo, *dpto, *admissao;
  22.     double *salario;
  23. }database;
  24.  
  25. void cadastro(int n, database *vetor_dados){
  26.     int i;
  27.     for(i = 0; i < n; i++){
  28.         vetor_dados[i].nome = (char *) malloc(100*sizeof(char));
  29.         printf("Informe o nome do %dº funcionário: ", i+1);
  30.         scanf("%s", vetor_dados[i].nome);
  31.  
  32.         vetor_dados[i].salario = (double *) malloc(sizeof(double));
  33.         printf("Informe o salario: ");
  34.         scanf("%lf", vetor_dados[i].salario);
  35.  
  36.         vetor_dados[i].cargo = (char *) malloc(100*sizeof(char));
  37.         printf("Informe o cargo: ");
  38.         scanf("%s", vetor_dados[i].cargo);
  39.  
  40.         vetor_dados[i].dpto = (char *) malloc(100*sizeof(char));
  41.         printf("Informe o departamento: ");
  42.         scanf("%s", vetor_dados[i].dpto);
  43.  
  44.         vetor_dados[i].admissao = (char *) malloc(100*sizeof(char));
  45.         printf("Informe a data de admissao: ");
  46.         scanf("%s", vetor_dados[i].admissao);
  47.     }
  48. }
  49.  
  50. void media_funcinarios(int n, database *vetor_dados){
  51.     int i, counter = 0, k = 0;
  52.     double media = 0.0;
  53.     for(i = 0; i < n; i++){
  54.         media += *vetor_dados[i].salario;
  55.         counter++;
  56.     }
  57.     media /= counter;
  58.     printf("Lista dos funcionários que ganham mais que a média:\n");
  59.     for(i = 0; i < n; i++){
  60.         if(*vetor_dados[i].salario > media){
  61.             printf("%d. %s\n", k, vetor_dados[i].nome);
  62.         }
  63.         free(vetor_dados[i].nome);
  64.         free(vetor_dados[i].salario);
  65.         free(vetor_dados[i].cargo);
  66.         free(vetor_dados[i].dpto);
  67.         free(vetor_dados[i].admissao);
  68.         k++;
  69.     }
  70. }
  71.  
  72. int main(){
  73.     database* data = (database *) malloc(100000*sizeof(database));
  74.     int n;
  75.     printf("Informe o número de funcionários da empresa: ");
  76.     scanf("%d", &n);
  77.     cadastro(n, data);
  78.     media_funcinarios(n, data);
  79.     free(data);    
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement