#include <stdio.h>
int main(){
double a,b;
char c;
scanf("%lf%c%lf",&a,&c,&b);
switch(c){
case '+':
printf("%.4lf+%.4lf=%.4lf",a,b,a+b);
break;
case '-':
printf("%.4lf-%.4lf=%.4lf",a,b,a-b);
break;
case '*':
printf("%.4lf*%.4lf=%.4lf",a,b,a*b);
break;
case '/':
if(b != 0.0){
printf("%.4lf/%.4lf=%.4lf",a,b,a/b);
break;
}
else{
printf("Wrong!Division by zero!");
break;
}
default:
printf("Invalid operation!");
break;
}
return 0;
}
这种做法与题目要求的不一样,题目要求的是输入一行字符串,不过一开始按照字符串去做做不出来,问题在于如何把字符串转化为浮点数,这个没有一个很好的想法,看了下别人的解法,发现都是这么做的。于是也就学习了一下。
个人觉得用switch case比用if 好,用double是因为精度问题,float可能会出现精度不够(用例10就是)



京公网安备 11010502036488号