题解 | #简单计算器#

简单计算器

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

#include<stdio.h>

int main()
{
    double x1=0.0,x2=0.0,ret=0.0;
    char c=0;
    scanf("%lf%c%lf",&x1,&c,&x2);
    if(c=='+')
        printf("%.4lf%c%.4lf=%.4lf",x1,c,x2,ret=x1+x2);
    else if(c=='-')
        printf("%.4lf%c%.4lf=%.4lf",x1,c,x2,ret=x1-x2);
    else if(c=='*')
        printf("%.4lf%c%.4lf=%.4lf",x1,c,x2,ret=x1*x2);
    else if(c=='/')
    {
        if(x2==0)
            printf("Wrong!Division by zero!\n");
        else
            printf("%.4lf%c%.4lf=%.4lf",x1,c,x2,ret=x1/x2);
    }
    else
        printf("Invalid operation!");
    
    return 0;
}

一开始float 的精度不够高,好像第九组会过不去,.5999不能变成.6000,用了double后就编过去了,好像很多题目都是float精度不够引起的错误

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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