#include <iostream>
#include <iomanip>
using namespace std;
typedef double (*Func)(double, double);
void Example(Func f[], double x, double y)
{
for(int i = 0;f[i];++i)
cout << f[i](x,y) << endl;
}
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; }
Func f[] = {add,sub,mul,0};
int main(int argc, char * argv[])
{
Example(f,3,2);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGRvdWJsZSAoKkZ1bmMpKGRvdWJsZSwgZG91YmxlKTsKCnZvaWQgRXhhbXBsZShGdW5jIGZbXSwgZG91YmxlIHgsIGRvdWJsZSB5KQp7CiAgICBmb3IoaW50IGkgPSAwO2ZbaV07KytpKQogICAgICAgIGNvdXQgPDwgZltpXSh4LHkpIDw8IGVuZGw7Cn0KCmRvdWJsZSBhZGQoZG91YmxlIHgsIGRvdWJsZSB5KSB7IHJldHVybiB4K3k7IH0KZG91YmxlIHN1Yihkb3VibGUgeCwgZG91YmxlIHkpIHsgcmV0dXJuIHgteTsgfQpkb3VibGUgbXVsKGRvdWJsZSB4LCBkb3VibGUgeSkgeyByZXR1cm4geCp5OyB9CgpGdW5jIGZbXSA9IHthZGQsc3ViLG11bCwwfTsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKQp7CiAgICBFeGFtcGxlKGYsMywyKTsKfQo=