fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int *proximo_da_media(int *vec, int size) {
  5. int *pos = vec;
  6. float soma = 0;
  7. for (int i = 0; i< size; i++) soma += pos[i];
  8. float media = soma / size + 0.5f;
  9. float diferenca = abs(*pos - media);
  10. for (int i = 0; i < size;i++) {
  11. if (abs(pos[i] - media) < diferenca) {
  12. diferenca = abs(pos[i] - media);
  13. vec = &pos[i];
  14. }
  15. }
  16. return vec;
  17. }
  18.  
  19. int main() {
  20. int tabela[10] = {20, 30, 43, 5, 400, 1999, 9, 360, 3, 8};
  21. int *posicao = proximo_da_media(tabela, 10);
  22. printf("O endreco do ponteiro que aponta para o numero mais proximo da media e o %p e tem o valor %d\n", (void *)posicao, *posicao);
  23. }
  24.  
  25. //https://pt.stackoverflow.com/q/287889/101
Success #stdin #stdout 0s 4320KB
stdin
Standard input is empty
stdout
O endreco do ponteiro que aponta para o numero mais proximo da media e o 0x7ffcae4521cc e tem o valor 360