//Igor Farah
#include<stdio.h>
#include<stdlib.h>

float*acima_media_da_media(int n, float *vet, int *tam)
{
    int i,cont = 0, j = 0;
    float media = 0, *vet2;

    // 1) Calcular a media
    for(i = 0; i<n;  i++)
        media = media + vet[i];
    media = media / n;

    // 2)	verificar quantos elementos de vet s�o maiores do que a m�dia
    for(i=0;i<n;i++) {
        if (vet[i] > media)
            cont++;  //*tam++;
    }

    // 3)	alocar dinamicamente um vetresposta de tamanho cont
    vet2 = (float*) malloc(cont * sizeof(float));
    if (vet2 == NULL)
        return NULL;

    // 4)	preencher o vetresposta com os elementos do item 2
    for(i=0,j=0;i<n;i++) {
       if (vet[i] > media) {
           vet2[j] = vet[i];
           j++;
       }
    }

    // 5)	atualizar a vari�vel ponteiro tam com o tamanho do novo vetor
    *tam = cont;

    return vet2;
}

main() {
    float *vet, *vet2;
    int n,i, tam_novo;
    printf("Digite o tamanho do vetor:");
    scanf("%d", &n);
    vet = (float*) malloc(n *sizeof(float));
    //float vet[9]={5.5, 3.2, 2.5, 9.4, 7.5, 4.1, 5.4, 8.0, 6.9};
    printf("Digite os valores que voce deseja:");
    for (i = 0; i<n; i++)
        scanf(" %f", &vet[i]);
    vet2 = acima_media_da_media(n,vet,&tam_novo);
    if (vet2 == NULL) {
        printf("Nao ha memoria suficiente!");
        exit();
    }
    for (i = 0; i<tam_novo; i++)
        printf(" %.1f", vet2[i]);
}