郑轻oj1037

郑轻oj1037,第1张

#include
#include
#include
//给你一个简单的四则运算表达式,包含两个实数和一个运算符,请编程计算出结果
//表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),
//也可能是其他字符。


注意运算符两侧各有一个空格。


//如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0, //则输出"Wrong input!"。


最后结果小数点后保留两位。


int main() { //思路:用到单片机里面 的标志位思想和for,switch语句 double x,y; char symbol,flag=1; char sy1[4]="+-*/";//定义一个数组存放合法字符 scanf("%lf %c %lf",&x,&symbol,&y); //这里特别容易因为肌肉记忆写成%d,编译器不报错,但是程序是错的 // if(symbol=='+') // printf("%.2f",x+y); for(int i=0,j=0;i<4;i++)//用到一个for循环来依次对比,直到匹配上了进入相应case语句执行任务 { if(symbol==sy1[i]) { switch(i) { case(0):printf("%.2f",x+y);flag=0;break; case(1):printf("%.2f",x-y);flag=0;break; case(2):printf("%.2f",x*y);flag=0;break; case(3):if(fabs(y) <= 1e-10){printf("Wrong input!");flag=0;}else{printf("%.2f",x/y);flag=0;}break; default:break; } } } if(flag==1)//没有正常运算,标志位就没被置0 printf("Wrong input!"); return 0; }

必须要用到fbas()这个库函数,在math.h的头文件里,不用就会报错。


把0当成是无穷小量吗,我也不知道咋设计的。


 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/563453.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-02
下一篇2022-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存