哪位高手能帮小弟我fix这个bug,当输入“66 * ?"时,它的输出是-7086695616.00. ?

谁能帮我fix这个bug,当输入“66 * ??时,它的输出是-7086695616.00. ??我想fix这一类问题,怎么做呀??output

谁能帮我fix这个bug,当输入“66 * ??"时,它的输出是-7086695616.00. ??
我想fix这一类问题,怎么做呀??

output   of   program:
==========> > >
66   *   ??
-7086695616.00
< < <===========


#include <stdio.h>

int   main()
{
float   value1,   value2;
char   operator;

printf( "Type   in   your   expression.\n ");
scanf( "%f   %c   %f ",   &value1,   &operator,   &value2);


if   (operator   == '+ ')
printf( "%.2f\n ",   value1+value2);
else   if   (operator   == '- ')
printf( "%.2f\n ",   value1-value2);
else   if   (operator   == '* ')
printf( "%.2f\n ",   value1*value2);
else   if   (operator   == '/ '   &&   value2==0)   printf( "Division   by   zero.\n ");
else   if   (operator   == '/ '   &&   value2!=0)   printf( "%.2f\n ",   value1/value2);
else  
printf( "Unknown   operator.\n ");

return   0;


}

[解决办法]

printf( "Type in your expression.\n ");
while (scanf( "%f %c %f ", &value1, &operatr, &value2) != 3)
{
printf( "format error, please enter again\n ");
fflush(stdin);
}

[解决办法]
做一些容错处理

#include <stdio.h>

int main()
{
float value1, value2;
char operator;
char error[100];

printf( "Type in your expression.\n ");
while( scanf( "%f %c %f ", &value1, &operator, &value2) != 3 )
{
gets(error);
printf( "uncorrect input, re-input again:\n ");
printf( "Type in your expression.\n ");
}


if (operator == '+ ')
printf( "%.2f\n ", value1+value2);
else if (operator == '- ')
printf( "%.2f\n ", value1-value2);
else if (operator == '* ')
printf( "%.2f\n ", value1*value2);
else if (operator == '/ ' && value2==0) printf( "Division by zero.\n ");
else if (operator == '/ ' && value2!=0) printf( "%.2f\n ", value1/value2);
else
printf( "Unknown operator.\n ");

return 0;


}