jazykc  2013.3
upoljazykc
 All Classes Files Functions Variables Typedefs Macros Pages
akumulator.c
Go to the documentation of this file.
1 
46 #include <stdio.h>
47 #include <stdlib.h>
48 #include <assert.h>
49 
50 double soucet (double a, double b) { return a + b; }
51 
52 double soucin (double a, double b) { return a * b; }
53 
54 double akumulator(double (*fce)(double, double), double cisla[], int pocet) {
55  double acc;
56  int i;
57 
58  assert(pocet>0);
59  acc = cisla[0];//nemame init argument jako foldl
60  for (i=1; i<pocet; i++) {
61 //printf("acc=%g cisla[%d]=%g\n", acc, i, cisla[i]);//ladeni
62  acc = (*fce)(acc, cisla[i]);
63  }
64  return acc;
65 }
66 
67 #define PNELEM 10
68 int main(void) {
69  double p[PNELEM];//vetsi/velka pole radeji jako static, ne na zasobniku
70  int i;
71 
72  for (i=0; i<PNELEM; i++)
73  p[i] = i+1;
74 
75  printf("Suma je: %g\n", akumulator(soucet,p,PNELEM));
76  printf("Produkt je: %g\n", akumulator(soucin,p,PNELEM));
77 
78  return 0;
79 }