#include <stdio.h> #include <stdarg.h> double RPNcalc(int NumberOfOps, ...); int main(void) { double total; total = RPcalc(4, 3.0, 4.0, '+', 33., '-', 122., '*', 55., '/'); printf("total is %f\n", total); return 0; } double RPNcalc(int NumberOfOps, ...) { va_list VariableArgsPtr; double sum, number; va_start(VariableArgsPtr, NumberOfOps); sum = va_arg(VariableArgsPtr, double); while(NumberOfOps-- != 0) { number = va_arg(VariableArgsPtr, double); switch(va_arg(VariableArgsPtr, char)) { case '+': sum += number; break; case '-': sum -= number; break; case '*': sum *= number; break; case '/': sum /= number; break; } } return sum; }