输入
表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),也可能是其他字符
输出
如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0,则输出"Wrong input!"。最后结果小数点后保留两位。
样例输入
1.0 + 1.0
样例输出
2.00
提示
除数是0,用|s2|<1e-10(即10的-10次方)判断
算式里有一个空格隔开运算数与运算符
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,d,f,e;
char c;
f=pow(10,-10); //f=10的-10次方
scanf("%f %c %f",&a,&c,&b);
e=fabsf(b); //e=b的绝对值
if(c=='+')
{d=a+b;
printf("%.2f",d);}
else if(c=='-')
{
d=a-b;
printf("%.2f",d);
}
else if(c=='*')
{
d=a*b;
printf("%.2f",d);
}
else if(c=='/'&&e>=f) //用e>10的-10判断除数是否为零
{
d=a/b;
printf("%.2f",d);
}
else
{
printf("Wrong input!");
}
return 0;
}
1.fabs函数的返回值是浮点数类型,并非整数类型;
2.pow() 函数用来求 x 的 y 次幂(次方),x、y及函数值都是double型