jazykc  2013.3
upoljazykc
 All Classes Files Functions Variables Typedefs Macros Pages
aritmeticky-prumer-pole.c
Go to the documentation of this file.
1 
23 #include <stdio.h>
24 #include <stdlib.h>
25 
26 #include <assert.h>
27 
28 double pole10[] = {1,2,3,4,5,90,80,77,60,50};
29 double pole7[] = {1,2,3,4,5,6,7};
30 double pole_noinit[5];
31 
33 #define NELEM(arr) (sizeof arr/sizeof arr[0])
34 
35 double pole_prumer_arith(double pole[], size_t sz) {
36  double suma;
37  int i;
38 
39  assert(sz>0);//resp. vracet NaN pri sz==0 ?
40 //for (int i=0/*pouze c99*/, suma=0.0; i<sz; i++) { ... }
41  for (i=0, suma=0.0; i<sz; i++) {
42  suma += pole[i];
43  }
44  return suma/sz;
45 }
46 
47 double pole_suma(double pole[], size_t sz) {
48  double suma;
49  int i;
50 
51  for (i=0, suma=0.0; i<sz; i++) {
52  suma += pole[i];
53  }
54  return suma;
55 }
56 
57 double pole_min(double pole[], size_t sz) {
58  double min = pole[0];//minimum, cyklus od 1
59  int i=1;
60 
61  while (i < sz) {
62  if (pole[i] < min) min = pole[i];
63  i++;
64  }
65  return min;
66 }
67 
68 double pole_max(double pole[], size_t sz) {
69  double max = pole[0];//maximum, cyklus od 1
70  int i=1;
71 
72  while (i < sz) {
73  if (pole[i] > max) max = pole[i];
74  i++;
75  }
76  return max;
77 }
78 
79 
80 void pole_vypis(double pole[], size_t sz) {
81  int i;
82  printf("Pole obsahuje cisla");
83  for (i=0; i<sz; i++) {
84  printf("%c %g", i?',':':', pole[i]);
85  }
86  putchar('\n');
87 }
88 
89 int main(void) {
90  double result;
91  double pole_noinit_local[5];//"inicializovano" smetim
92 
93  pole_vypis(pole7, NELEM(pole7));
94  result = pole_prumer_arith(pole7, NELEM(pole7));
95  printf("Prumer pole je: %g\n", result);
96  printf("Suma pole je: %g\n", pole_suma(pole7, NELEM(pole7)));
97  putchar('\n');
98 
99 
100  pole_vypis(pole10, NELEM(pole10));
101  result = pole_prumer_arith(pole10, NELEM(pole10));
102  printf("Prumer pole je: %g\n", result);
103  printf("Suma pole je: %g\n", pole_suma(pole10, NELEM(pole10)));
104  printf("Maximum pole je: %g\n", pole_max(pole10, NELEM(pole10)));
105  printf("Minimum pole je: %g\n", pole_min(pole10, NELEM(pole10)));
106 
107  pole_vypis(pole_noinit, NELEM(pole_noinit));//staticke inicializovano na 0
108  pole_vypis(pole_noinit_local, NELEM(pole_noinit_local));//smeti
109  return EXIT_SUCCESS;
110 }
#define NELEM(arr)
size_t sz