在计算之前要看double类型的是否符合结果值,double有长度,所有题目才要求是否能够正确运算
我好像判断条件有问题,但是大概是这个意思,要考虑数据溢出的问题
#include <stdio.h>
int main(){
double x1,x2,y;
int sign=1;
char op;
scanf("%lf %c %lf",&x1,&op,&x2);
getchar();
switch(op){
case '+':
if((x1+x2)<x1){
sign=0;
break;
}
y=x1+x2;
break;
case '-':
if((x1-x2)>x1 |(x1-x2)){
sign=0;
break;
}
y=x1-x2;
break;
case '*':
if((x1*x2)<x1){
sign=0;
break;
}
y=x1*x2;
break;
case '/':
if((x2=0){
sign=0;
break;
}
y=x1/x2;
break;
}
if(sign==1 && op!='/'){
printf("%lf\n",y);
}else if(sign==1 && op=='/')
printf("%.2lf\n",y);
else{
printf("eror");
}
return 0;
}