Facebook
From Abrupt Butterfly, 7 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 303
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. float suma(float tab[], int dlugosc) {
  6.   int i = 0, s = 0;
  7.   for (i = 0; i < dlugosc; i++)
  8.     s += tab[i];
  9.  
  10.   return s;
  11. }
  12.  
  13. float sredniaA(float tab[], int dlugosc) {
  14.   int i = 0, s = 0, sr;
  15.   for (i = 0; i < dlugosc; i++)
  16.     s += tab[i];
  17.  
  18.   sr = s / (i + 1);
  19.   return sr;
  20. }
  21.  
  22. float sredniaG(float tab[], int dlugosc) {
  23.   int i = 0;
  24.   float sr;
  25.   long long int s = 1.0;
  26.   for (i = 0; i < dlugosc; i++)
  27.     s = s * tab[i];
  28.   sr = pow(s, (1.0 / (i + 1)));
  29.   return sr;
  30. }
  31.  
  32. int main() {
  33.   int i = 0, rozmiar = 4, wpisane = 0;
  34.   float *tablica, a;
  35.  
  36.   tablica = (float*)malloc(rozmiar * sizeof(*tablica));
  37.   tablica[0] = 0.1;
  38.  
  39.   FILE* f = fopen("dane.txt", "r");
  40.  
  41.   if (f == NULL)
  42.     printf("Problem z plikiem");
  43.  
  44.   else {
  45.     if (wpisane != rozmiar) {
  46.       while (!feof(f)) {
  47.         if (i == 0) {
  48.           fscanf(f, "%f", &a);
  49.           tablica[i] = a;
  50.           i++;
  51.         } else {
  52.           fscanf(f, "%f", &a);
  53.           tablica[i] = a;
  54.           i++;
  55.         }
  56.       }
  57.     }
  58.  
  59.     else {
  60.       float* tablica2 = (float*)malloc(2 * rozmiar * sizeof(*tablica));
  61.       rozmiar = 2 * rozmiar;
  62.       int j;
  63.       for (j = 0; j < i; j++)
  64.         tablica2[j] = tablica[j];
  65.       free(tablica);
  66.       tablica = tablica2;
  67.       i--;
  68.       tablica[i] = a;
  69.       i++;
  70.       wpisane++;
  71.     }
  72.   }
  73.  
  74.   int j = 0;
  75.   for (j = 0; j < i - 1; j++)
  76.     printf("%.3f\n", tablica[j]);
  77.  
  78.   printf("%.3f\n", suma(tablica, (i)));
  79.   printf("%.3f\n", sredniaA(tablica, (i)));
  80.   printf("%.3f\n", sredniaG(tablica, (i)));
  81.  
  82.   return 0;
  83. }
  84.