#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;
}

Prev: add.c       Next: printp.c