#include <iostream>
using namespace std;
double voltage(double v) {
return v;
}
double hdot(double h) {
return h * 2;
}
double ndot(double n) {
return n * 3;
}
typedef double(*eqpointer)(double);
int main() {
int const eq_num = 3;
double *midvalues = new double[eq_num];
eqpointer ODE[eq_num] = { voltage, hdot, ndot };
for (int j = 0; j < eq_num; j++) {
midvalues[j] = (*ODE[j])((j + 1) * 10) / 2; // Value For Example
printf("midvalues[%d]: %f\n", j, midvalues[j]);
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIHZvbHRhZ2UoZG91YmxlIHYpIHsKCXJldHVybiB2Owp9CmRvdWJsZSBoZG90KGRvdWJsZSBoKSB7CglyZXR1cm4gaCAqIDI7Cn0KZG91YmxlIG5kb3QoZG91YmxlIG4pIHsKCXJldHVybiBuICogMzsKfQoKdHlwZWRlZiBkb3VibGUoKmVxcG9pbnRlcikoZG91YmxlKTsKCmludCBtYWluKCkgewoJaW50IGNvbnN0IGVxX251bSA9IDM7Cglkb3VibGUgKm1pZHZhbHVlcyA9IG5ldyBkb3VibGVbZXFfbnVtXTsKCWVxcG9pbnRlciBPREVbZXFfbnVtXSA9IHsgdm9sdGFnZSwgaGRvdCwgbmRvdCB9OwoKCWZvciAoaW50IGogPSAwOyBqIDwgZXFfbnVtOyBqKyspIHsKCQltaWR2YWx1ZXNbal0gPSAoKk9ERVtqXSkoKGogKyAxKSAqIDEwKSAvIDI7ICAvLyBWYWx1ZSBGb3IgRXhhbXBsZQoJCXByaW50ZigibWlkdmFsdWVzWyVkXTogJWZcbiIsIGosIG1pZHZhbHVlc1tqXSk7Cgl9CglyZXR1cm4gMDsKfQ==