diff --git a/20200123/loesung-2.c b/20200123/loesung-2.c
new file mode 100644
index 0000000000000000000000000000000000000000..7a277e7b514d05e3bffbb59cd09fc5f63a18e26a
--- /dev/null
+++ b/20200123/loesung-2.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+
+void foreach (int *a, void (*fun) (int x))
+{
+  for (int *p = a; *p >= 0; p++)
+    fun (*p);
+}
+
+void even_or_odd (int x)
+{
+  if (x % 2)
+    printf ("%d ist ungerade.\n", x);
+  else
+    printf ("%d ist gerade.\n", x);
+}
+
+int sum = 0;
+
+void add_up (int x)
+{
+  sum += x;
+}
+
+int main (void)
+{
+  int numbers[] = { 12, 17, 32, 1, 3, 16, 19, 18, -1 };
+  foreach (numbers, add_up);
+  printf  ("Summe: %d\n", sum);
+  return 0;
+}