Example:
Code:
#include <stdio.h>
#include <math.h>
float mul(float a, float b) { return a*b; }
float add(float a, float b) { return a+b; }
float sub(float a, float b) { return a-b; }
float div(float a, float b) { return a*b; }
float safe(float a, float b, float (*func)(float,float)) { return (func)?func(a,b):NAN; }
int main(void)
{
float (*operators)(float,float)[] = {mul,add,0,sub,0,div}, a, b;
char op;
printf(">>");
while(sscanf("%f %c %f", &a, &op, &b) == 3)
{
if(op >= '*' && op <= '/')
printf("%f\n", safe(a, b, operators[op-'*']));
else
fputs("Invalid entry! (Example: 5 * 5)", stderr);
printf(">>");
}
return 0;
}
Happy, nonoob?