#include <stdio.h>
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
double add(double x, double y) { return x + y; }
double sub(double x, double y) { return x - y; }
double mul(double x, double y) { return x * y; }
double div(double x
, double y
) { return x
/ y
; }
static double (*funcs
[])(double, double) = {add
, sub
, mul
, div};
int main() {
int i = 0;
while (i < ARRAY_SIZE(funcs)) {
printf("LolWut? %f\n", funcs
[i
++](3.141592, 100500.0)); }
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIEFSUkFZX1NJWkUoYXJyKSAoc2l6ZW9mKGFycikgLyBzaXplb2YoYXJyWzBdKSkKCmRvdWJsZSBhZGQoZG91YmxlIHgsIGRvdWJsZSB5KSB7IHJldHVybiB4ICsgeTsgfQpkb3VibGUgc3ViKGRvdWJsZSB4LCBkb3VibGUgeSkgeyByZXR1cm4geCAtIHk7IH0KZG91YmxlIG11bChkb3VibGUgeCwgZG91YmxlIHkpIHsgcmV0dXJuIHggKiB5OyB9CmRvdWJsZSBkaXYoZG91YmxlIHgsIGRvdWJsZSB5KSB7IHJldHVybiB4IC8geTsgfQoKc3RhdGljIGRvdWJsZSAoKmZ1bmNzW10pKGRvdWJsZSwgZG91YmxlKSA9IHthZGQsIHN1YiwgbXVsLCBkaXZ9OwoKaW50IG1haW4oKSB7CiAgaW50IGkgPSAwOwogIHdoaWxlIChpIDwgQVJSQVlfU0laRShmdW5jcykpIHsKICAgIHByaW50ZigiTG9sV3V0PyAgJWZcbiIsIGZ1bmNzW2krK10oMy4xNDE1OTIsIDEwMDUwMC4wKSk7CiAgfSAKfQ==