题解 | #简单计算器#

简单计算器

http://www.nowcoder.com/practice/b8f770674ba7468bb0a0efcc2aa3a239

开始用的float型声明操作数,但是提交后结果如下:

图片说明

提示有一组测试用例没通过,看了下是因为四舍五入精度问题,于是将操作数声明为double型变量,顺利通过:

图片说明

代码:

#include<stdio.h>
int main(){
    char op;
    double op1,op2;
    while(~scanf("%lf%c%lf",&op1,&op,&op2)){
        if(op!='+'&&op!='-'&&op!='*'&&op!='/') 
            printf("Invalid operation!\n");
        else if(op=='/'){
                if(op2==0.0) printf("Wrong!Division by zero!\n");
                else printf("%.4f/%.4f=%.4f\n",op1,op2,op1/op2);
                }
        else{
            if(op=='+') printf("%.4f+%.4f=%.4f\n",op1,op2,op1+op2);
            if(op=='-') printf("%.4f-%.4f=%.4f\n",op1,op2,op1-op2);
            if(op=='*') printf("%.4f*%.4f=%.4f\n",op1,op2,op1*op2);
        }
    }
}
全部评论
我也刚好卡了这组,还以为系统出故障了
点赞 回复 分享
发布于 2023-06-13 11:02 湖北
为什么我换成都double后变成了92.0000*22.3000=2051.6001
点赞 回复 分享
发布于 2022-10-14 16:24 湖北
谢谢你,不然我一直找不到为什么那组测试用例过不了
点赞 回复 分享
发布于 2022-03-06 19:23

相关推荐

点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
18
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务