Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5.  
  6. void valida(int *a){
  7.     scanf("%d", a);
  8.     while(*a<=0){
  9.         printf("Valor invalido. Digite novamente.\n");
  10.         scanf("%d", a);
  11.     }
  12. }
  13.  
  14. float * leV(int a){
  15.     int i;
  16.     float *vetor;
  17.    
  18.     vetor = (float *) malloc (a*sizeof(float));
  19.     if(vetor==NULL){
  20.         printf("Erro ao alocar memoria.\n");
  21.         exit(1);
  22.     }
  23.  
  24.     for(i=0;i<a;i++){
  25.         scanf("%f", &vetor[i]);
  26.     }
  27.  
  28.     return vetor;
  29.  
  30. }
  31.  
  32. float media(float *vetor, int n){
  33.     float soma = 0;
  34.     float media;
  35.     int i;
  36.     for(i=0;i<n;i++){
  37.         soma = soma + vetor[i];
  38.     }
  39.     media = soma/n;
  40.     return media;
  41. }
  42.  
  43. float * separa(float *vetor, float media, int n, int *cv){
  44.     int i;
  45.     float *tops;
  46.     int c1=0;
  47.  
  48.     for(i=0;i<n;i++){
  49.         if(vetor[i]>media){
  50.             c1++;
  51.         }
  52.     }
  53.     tops = (float *) malloc(c1*sizeof(float));
  54.     if(tops==NULL){
  55.         printf("Erro ao alocar memoria.\n");
  56.         exit(2);
  57.     }
  58.     c1=0;
  59.     for(i=0;i<n;i++){
  60.         if(vetor[i]>media){
  61.             tops[c1] = vetor[i];
  62.             c1++;
  63.             (*cv)++;
  64.             vetor[i] = -1;
  65.         }
  66.     }
  67.     return tops;
  68. }
  69.  
  70. void apresenta(float *vetvip, float *vetnvip, int n, int cv){
  71.     int i;
  72.     int c=1;
  73.     printf("***********_CLIENTES VIP'S_***********\n");
  74.     for(i=0;i<cv;i++){
  75.         printf("%d - Valor em conta = %.2f\n", i+1, vetvip[i]);
  76.     }
  77.     printf("*********_CLIENTES NAO VIP'S_*********\n");
  78.     for(i=0;i<n;i++){
  79.         if(vetnvip[i]!=-1) {
  80.             printf("%d - Valor em conta = %.2f\n", c, vetnvip[i]);
  81.             c++;
  82.         }
  83.     }
  84. }
  85.  
  86.  
  87.  
  88.  
  89. int main (){
  90.     int n,i,cv=0;
  91.     float *saldo;
  92.     float *vips;
  93.     float media_s;
  94.     valida(&n);
  95.     saldo = leV(n);
  96.     media_s = media(saldo, n);
  97.     vips = separa(saldo, media_s, n, &cv);
  98.     apresenta(vips, saldo, n, cv);
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement