Guião laboratorial n.º 1 – exercício 10

“Desenvolva uma função que receba, como argumentos, o nome e a dimensão de um vetor de números reais e devolva um ponteiro para o elemento que mais se aproxima da média de todos os elementos do vetor.”

#include <stdio.h>
#include <stdlib.h>

#define TAM 10

int mais_proximo(int *v, int t){
int *p, media=0, soma=0, posi=0, dif=0, guarda[t], i, dif2=0;
p=v;

for(p=v;p<v+t;p++){
  soma=soma+*p;
}
media=soma/t;


for(p=v, i=0; p<v+t ; p++, i++){
  dif=media-*p;
  if(dif<0){
    dif=-dif;
  }
  guarda[i]=dif;
  printf("\n%d\t %d\t %d", i, guarda[i], media);
}
for(i=0, dif2=guarda[i]; i<t ; i++){
  if(dif2>guarda[i]){
    posi=i;
    dif2=guarda[i];
    }
}

return posi;
}
int main()
{
int vector[]={11,2,63,4,55,6,106,8,99,1000};
int valor=0;
valor=mais_proximo(vector, TAM);
printf("\nEsta na posicao: %d", valor);


return 0;
}


Tags :