When I run this code this is my output:
$ make 6-4 && ./6-4
`6-4' is up to date.
Begin calculations
S 3
= 3.000000
+ 2
Invalid operator
= 3.000000
= 5.000000
It starts off well, 'S 3' gives me ' = 3.000000'. Than I type "+ 2", this gives me 'Invalid operator' and two answers. This is what I want:
S 3
= 3.000000
+ 2
= 5.000000
What am I missing?
#include<stdio.h>
char operator;
float number = 0;
float result = 0;
main()
{
printf("Begin calculations\n");
while (1) {
scanf("%c%f", &operator, &number);
switch(operator)
{
case '+': {
result += number;
break;
}
case '-': {
result -= number;
break;
}
case '*': {
result *= number;
break;
}
case '/': {
result /= number;
break;
}
case 'S': {
result = number;
break;
}
case 'E': {
return 0;
break;
}
default: {
printf("Invalid operator\n");
break;
}
}
printf(" = %f\n", result);
}
}
Thanks.