1 /* 2 * minmaxsum-pointer.c 3 * 4 * Gibt die kleinere, groessere und die Summe zweier Zahlen aus. 5 * Beispiel fuer die Verwendung eines Arrays von Funktionszeigern. 6 * 7 * Autor: H.Drachenfels 8 * Erstellt am: 5.4.2023 9 */
10
11 #include <stdio.h> // printf
12 #include <stdlib.h> // atoi
13
14 int min(int, int);
15 int max(int, int);
16 int sum(int, int);
17
18 typedef int (*int_function_int_int)(int, int);
19
20 int main(int argc, char *argv[])
21 {
22 // int (*f[])(int, int) = {min, max, sum, NULL};
23 int_function_int_int f[] = {min, max, sum, NULL};
24
25 if (argc != 3)
26 {
27 fprintf(stderr, "Aufruf: %s Zahl Zahl\n", argv[0]);
28 return 1;
29 }
30
31 int m = atoi(argv[1]);
32 int n = atoi(argv[2]);
33
34 for (int i = 0; f[i] != NULL; ++i)
35 {
36 printf("%d\n", f[i](m, n));
37 }
38
39 return 0;
40 }
41
42 int min(int a, int b)
43 {
44 return a < b ? a : b;
45 }
46
47 int max(int a, int b)
48 {
49 return a > b ? a : b;
50 }
51
52 int sum(int a, int b)
53 {
54 return a + b;
55 }
56