程序设计实验二 第6关:简单的计算器

任务描述

用switch语句编程设计一个简单的计算器程序。 要求根据用户从键盘输入的表达式(注意操作数与运算符之间没有空格): 操作数1 运算符op 操作数2 计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。 编程要求:程序能进行浮点数的算术运算,有用户输入输出提示信息。 提示:因为除法中的除数不能为0,因此关键在于如何比较浮点变量data2和常数0是否相等。作为整型变量跟0的比较,简单的==就可以解决。而浮点型等实型变量需要用 if (fabs(data2) <= 1e-7) 进行判断(即判断其是否足够小)。若使用函数fabs,需要包含头文件math.h #####注意事项

  • 输入的数据中操作数与运算符之间没有空格,例如1+5
  • 需要处理除数为0的情况。如果除数为0,则输出提示信息: 除数不能为0
  • 需要判断用户输入的运算符是否是+-*/,如果符号不对,输出:运算符有误
  • 结果输出保留2位小数

相关知识

为了完成本关任务,你需要掌握:switch语句使用。

switch语句使用

(1)If和switch都是用于进行选择判断的,但是switch一般用于离散的值的判断条件选择,如果值不是离散的,还需要进行一些转换,让其为离散的,然后再用switch语句进行判断,相关例子,比如统计各个分数段的学生人数。 (2)编码的时候,要根据具体问题的需要来进行选择,哪种方式方便就用哪种方式。 (3)本题理论上也可以用if-else实现,但是题目要求必须使用switch语句完成。在本题中,使用switch语句可读性更好

编程要求

在右侧编辑器中编写完整代码。

测试说明

平台会对你编写的代码进行测试:

测试输入:1+2 预期输出: 3.00

测试输入:1/3 预期输出: 0.33

测试输入:1/0 预期输出: 除数不能为0

测试输入:1@3 预期输出: 运算符有误

//请在下方完整写出自己的代码
//注意看左侧提示信息,输入输出要求,不要有多余的输入输出
#include<stdio.h>
#include<math.h>
int main(void)
{
    double e=exp(1.0);
    double a,b;char c;
    double plus,subtract,multiply,divide;
    scanf("%lf%c%lf",&a,&c,&b);
    if(fabs(b)<=(1e-7))printf("除数不能为0");
    else if(c!='*'&&c!='+'&&c!='-'&&c!='/')printf("运算符有误");
    else
    {
        switch(c)
        {
            case '+':printf("%.2lf",a+b);break;
            case '-':printf("%.2lf",a-b);break;
            case '*':printf("%.2lf",a*b);break;
            case '/':printf("%.2lf",a/b);break;
            default:break; 
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值