#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就是)