谁能帮我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;
}
哪位高手能帮小弟我fix这个bug,当输入“66 * ?"时,它的输出是-7086695616.00. ?
谁能帮我fix这个bug,当输入“66 * ??时,它的输出是-7086695616.00. ??我想fix这一类问题,怎么做呀??output
