![]() |
![]() |
![]() |
![]() |
![]() |
|
Of course, you would never remember whether 0 means fast or
accurate. Accordingly, you should test the value of mode against mnemonic
enumeration constants. You probably should also replace the if
statement with a switch statement, anticipating that you might eventually
have more than two possible values for the mode global variable:
int mode;
enum {fast, accurate};
...
double mean_price (struct trade **array, int length) {
int counter, selector, increment; double sum = 0.0;
switch (mode) {
case fast: increment = 2; break;
case accurate: increment = 1; break;
}
for (counter = 0, selector = 0;
selector < length;
++counter, selector = selector + increment)
sum = sum + array[selector] -> price;
return sum / counter;
}