学习笔记 简单的计算器

任务描述

用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()
{
    float a, b;
    int flag = 0;
    char op;
    scanf("%f", &a);
    scanf("%c", &op);
    scanf("%f", &b);
    switch(op)
    {
        case '+': 
            a += b;
            printf("%.2f", a);
            break;
        case '-': 
            a -= b;
            printf("%.2f", a);
            break;
        case '*':
             a *=  b;
             printf("%.2f", a);
             break;
        case '/': 
            if(fabs(b) <= 1e-7)
            {
                printf("除数不能为0");
                break;
            }
            else
            {
                a /= b;
                printf("%.2f", a);
                break;
            }
        default:
            printf("运算符有误");
            break;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值