题解 | #简单计算器#

简单计算器

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

#include<stdio.h>
int main(void)
{
    double a,b;//精度问题导致用float无法通过,具体原因得去研究一下IEEE754浮点数表示
    char sf;
    scanf("%lf%c%lf",&a,&sf,&b);
    switch(sf)//本题可以用if-else完成,但是用switch也能完成,因为是新手,就训练一下如何使用switch了
    {
        case '+':
            printf("%.4f+%.4f=%.4f",a,b,a+b);
            break;
        case '-':
            printf("%.4f-%.4f=%.4f",a,b,a-b);
            break;
        case '*':
            printf("%.4f*%.4f=%.4f",a,b,a*b);//浮点数要注意精度问题
            break;
        case '/':
            {
                if(b<0.000001)
                    printf("Wrong!Division by zero!");
                else
                    printf("%.4f/%.4f=%.4f",a,b,a/b);
                break;
            }
        default:
            printf("Invalid operation!");
    }
    return 0;
}
全部评论

相关推荐

牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务