fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<math.h>
  4. #include<malloc.h>
  5.  
  6. int* alokowanie_pamieci(int ile_liczb)
  7. {
  8. (int*)malloc(ile_liczb*sizeof(int));
  9. }
  10.  
  11. int wczytywanie_danych(int* tab, int ile_liczb)
  12. {
  13. for(int i=0; i<ile_liczb; ++i)
  14. {
  15. scanf("%d",(tab+i));
  16. }
  17. }
  18.  
  19. float srednia(int* tab, int ile_liczb)
  20. {
  21. float suma=0, srednia_liczb;
  22. for(int i=0; i<ile_liczb; ++i)
  23. {
  24. suma+=*(tab+i);
  25. }
  26. srednia_liczb=suma/ile_liczb;
  27. return srednia_liczb;
  28. }
  29.  
  30. int najblizej_sredniej(int *tab, float srednia_liczb, int ile_liczb)
  31. {
  32. int element_najblizszy=*(tab);
  33. for(int i=0; i<ile_liczb; ++i)
  34. {
  35. if(fabs(*(tab+i)-srednia_liczb)>(fabs(element_najblizszy-srednia_liczb))) continue;
  36. if(fabs(*(tab+i)-srednia_liczb)<(fabs(element_najblizszy-srednia_liczb))) element_najblizszy=*(tab+i);
  37. if(fabs(*(tab+i)-srednia_liczb)==(fabs(element_najblizszy-srednia_liczb))) continue;
  38. }
  39. return element_najblizszy;
  40. }
  41.  
  42. int main()
  43. {
  44. int *tab;
  45. int ilosc_testow, ile_liczb;
  46. printf("Podaj ilosc testow:");
  47. scanf("%d",&ilosc_testow);
  48. if(ilosc_testow>=1 && ilosc_testow<101)
  49. {
  50. for(int i=1;i<=ilosc_testow; ++i)
  51. {
  52. printf("Podaj ile liczb w tablicy:");
  53. scanf("%d",&ile_liczb);
  54. if(ile_liczb>0 && ile_liczb<100)
  55. {
  56. tab=alokowanie_pamieci(ile_liczb); /* Przypisanie do wskaznika adresu pierwszego elementu*/
  57. if(tab!=NULL)
  58. {
  59. printf("Podaj dane do tablicy:");
  60. wczytywanie_danych(tab,ile_liczb);
  61. float srednia_liczb=srednia(tab, ile_liczb);
  62. printf("Srednia wczytanych liczby to %.2f\n",srednia_liczb);
  63. printf("Element najblizej sredniej to %d\n",najblizej_sredniej(tab,srednia_liczb,ile_liczb));
  64. }
  65. else printf("Nie udalo sie przydzielic pamieci!");
  66. }
  67. }
  68. }
  69. return 0;
  70. }
  71.  
Success #stdin #stdout 0s 9424KB
stdin
Standard input is empty
stdout
Podaj ilosc testow: