#include #include double calculate(char op, double num1, double num2) { double result = 0; switch (op) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; } return result; } int main() { double number = 0; double tmpNumber = 0; char input; char operator; while (1) { scanf(" %c", &input); switch (input) { case '+': operator = '+'; tmpNumber = number; number = 0; break; case '-': operator = '-'; tmpNumber = number; number = 0; break; case '*': operator = '*'; tmpNumber = number; number = 0; break; case '/': operator = '/'; tmpNumber = number; number = 0; break; case '=': printf("%lf\n", calculate(operator, tmpNumber, number)); tmpNumber = 0; number = 0; break; case 'q': goto exit; // operator doesn't match any case constant default: number = (number * 10) + atof(&input); printf("%.1lf\n", number); } } exit: return 0; }