my program works fine but as soon as i try to enter E or e it just stays in a infinite loop help please see if you can spot my problem.

Code:
 #include <stdio.h>

int main (void)
  
{  
 
float value1; 
 
float accumulator = 0;  

char operator;    





printf ("\t\tCalulator\n");  
 
printf ("\t\t---------\n");  

 

do
 {



printf("Type in your test\n");  

scanf("%f %c", &value1, &operator);     

    



switch (operator) 

  {       
 
case 'S':      
 
accumulator = value1;   

printf("%.3f\n", value1);     
 
break;        

 

case 's':       

accumulator = value1;     

printf("%.3f\n", value1);      

 break;      


 case '+':      

 accumulator += value1;      

 printf("%.3f\n", accumulator);       

 break;       

 

 case '-':       

 accumulator = accumulator - value1;      
 
printf("%.3f\n", accumulator);       
 
break;       

 

case '/':     
 
accumulator = accumulator / value1;       

printf("%.3f\n", accumulator);       
 
break;       

 

case '*':       

 accumulator = accumulator * value1;       

printf("%.3f\n", accumulator);                
 
break;        

 

case 'E':        

 printf("End of Tests\n");       

 break;        



 case 'e':      

 printf("End of Tests\n");        

break;             

 	

default:       
	  
 printf("UNKNOWN OPERATOR\n");       
	 
break;

  }

	
while (operator != 'e' && operator != 'E');
  }
	
printf("\n%.3f\n", accumulator);


return 0;

}