1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#include <stdio.h> typedef struct { double average; int count; } stats_type; static void testc (stats_type *s, long long data) { s->average = (s->average * s->count + data) / (s->count + 1); s->count++; } int main (void) { stats_type s; s.average = 0; s.count = 0; testc (&s, 10); testc (&s, 20); printf ("%g %d\n", s.average, s.count); return 0; }