Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int WypelnienieTablicy(int rozmiarTablicy, int* tablica)
  5. {
  6.     for(int i = 0; i<rozmiarTablicy; i++)
  7.     {
  8.         if (scanf("%d", &tablica[i]) == EOF)
  9.         {
  10.             if (i == 0)
  11.                 exit(0);
  12.             return rozmiarTablicy = i;
  13.         }
  14.     }
  15. }
  16.  
  17. int LiczenieSumy(int rozmiarTablicy, int* tablica)
  18. {
  19.     int suma = 0;
  20.     for(int i = 0; i<rozmiarTablicy; i++)
  21.     {
  22.         suma = suma + (tablica[i]);
  23.     }
  24.     return suma;
  25. }
  26.  
  27. int LiczenieSredniej(int suma, int rozmiarTablicy, int* tablica)
  28. {
  29.     return suma / rozmiarTablicy;
  30. }
  31.  
  32. void SortowanieTablicy (int rozmiarTablicy, int *tablica)
  33. {
  34.     for(int i = 0; i<rozmiarTablicy; i++)
  35.     {
  36.         for(int j = 0; j<rozmiarTablicy; j++)
  37.         {
  38.             if (tablica[i]<tablica[j])
  39.             {
  40.                 int tmp = tablica[j];
  41.                 tablica[j] = tablica[i];
  42.                 tablica[i] = tmp;
  43.             }
  44.         }
  45.     }
  46. }
  47.  
  48. int LiczenieMediany(int rozmiarTablicy, int* tablica)
  49. {
  50.     float mediana = 0;
  51.     SortowanieTablicy(rozmiarTablicy, tablica);
  52.     if (rozmiarTablicy%2 == 0)
  53.     {
  54.         int n = rozmiarTablicy/2;
  55.         mediana = (tablica[n]+tablica[n+1])/2;
  56.     }
  57.     else
  58.     {
  59.         int n = rozmiarTablicy/2;
  60.         mediana = tablica[n];
  61.     }
  62.     return mediana;
  63. }
  64.  
  65. int LiczenieDominanty(int rozmiarTablicy, int* tablica)
  66. {
  67.     int tablicaWystapien[rozmiarTablicy], tablica2[rozmiarTablicy], k = 0;
  68.     SortowanieTablicy(rozmiarTablicy, tablica);
  69.     for(int i = 0; i<rozmiarTablicy; i++)
  70.     {
  71.         for(int j = 0; j<rozmiarTablicy; j++)
  72.         {
  73.             if(tablica[i]!=tablica2[j])
  74.             {
  75.                 tablica2[i] = tablica[i];
  76.                 tablicaWystapien[i] = 1;
  77.             }
  78.             else if(tablica[i]==tablica2[j])
  79.             {
  80.                 tablicaWystapien[j] += 1;
  81.             }
  82.         }
  83.     }
  84.  
  85.     for(int i = 0; i<rozmiarTablicy; i++)
  86.     {
  87.         for(int j = 0; j<rozmiarTablicy; j++)
  88.         {
  89.             if(tablicaWystapien[i]<tablicaWystapien[j])
  90.             k = j;
  91.         }
  92.     }
  93.    
  94.     return tablica2[k];
  95. }
  96.  
  97. int main(void)
  98. {
  99.     int rozmiarTablicy, suma = 0, dominanta;
  100.     float mediana, srednia = 1;
  101.     int *tablica;
  102.     printf("Podaj rozmiar tablicy ");
  103.     scanf("%d", &rozmiarTablicy);
  104.     tablica = malloc(sizeof(int)*rozmiarTablicy);
  105.     if (NULL == tablica || rozmiarTablicy < 1)
  106.     {
  107.         printf("Nie mozna zaalokowac tablicy\n");
  108.         return 1;
  109.     }
  110.     printf("Wpisz wartosci, po każdej nacisnij enter \n");
  111.     rozmiarTablicy = WypelnienieTablicy(rozmiarTablicy, tablica);
  112.     suma = LiczenieSumy(rozmiarTablicy, tablica);
  113.     srednia = LiczenieSredniej(suma, rozmiarTablicy, tablica);
  114.     mediana = LiczenieMediany(rozmiarTablicy, tablica);
  115.     dominanta = LiczenieDominanty(rozmiarTablicy, tablica);
  116.     printf("%d %.2f %.2f %d %d \n", suma, srednia, mediana, dominanta, rozmiarTablicy);
  117.     return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement