//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]); }