2. 编一个模拟计算器进行简单算术运算的程序(c=a运算符b),只做加、减、乘、除四种运算。(用switch结构

提示:1.算术运算需要2个操作数(int型变量),并且要保存结果的话,还需要一个浮点型量.故共需3个变量.2.运算符可以用char型来保存.... 提示: 1.算术运算需要2个操作数(int型变量),并且要保存结果的话,还需要一个浮点型量.故共需3个变量.
2. 运算符可以用char型来保存.
展开
 我来答
娱乐小八卦啊a
高粉答主

2020-03-02 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117865

向TA提问 私信TA
展开全部

代码如下:

#include "pch.h"

#include <iostream>

#include <functional>

#include <map>

#include <string>

using namespace std;

int add(int i, int j)

{

return i + j;

}

// 使用函数调用运算符

struct divide

{

int operator()(int i, int j)

{

return i / j;

}

};

auto mod = [](int i, int j) {return i % j; };

map<string, function<int(int, int)>> binops = 

{

    {"+", add},                                  // 使用函数指针

    {"-", minus<int>()},                         // 使用标准库函数对象

    {"*", [](int i, int j) {return i * j; }},    // 使用未命名的lambda表达式

    {"/", divide()},                             // 使用函数调用运算符

    {"%", mod}                                   // 命名了的lambda表达式

};

int main()

{

int num1, num2;

string s;

while (cin >> num1)

{

cin >> s >> num2;

cout << num1 << s << num2 << "=" << binops[s](num1, num2) << endl;

}

return 0;

}

扩展资料

Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。

直线翻译:switch语句,即“切换”语句;case即“情况”。

switch语句的语法如下(switch,case,break和default是关键字):

switch ( 变量表达式 )

{

case 常量1 :语句;break;

case 常量2 :语句;break;

case 常量3 :语句;break;

...

case 常量n:语句;break;

default :语句;break;

}

当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果常量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句。

百度网友0cfe3dd
推荐于2017-09-22 · TA获得超过180个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:98万
展开全部
#include<stdio.h>
int main()
{
    int a,c;
    char b;
    float result;
    scanf("%d %c %d",&a,&b,&c);        //输入需要分开,如:1 + 2
    switch(b)
    {
        case '+':
            result=a+c;
            break;
        case '-':
            result=a-c;
            break;
        case '*':
            result=a*c;
            break;
        case '/':
            if( c == 0 )        //除数不能为0
                {
                    printf("c is error");
                    return 1;
                 }
            result=a/(float)c;
            break;
        default:
            printf("b is error!");
            return 1;
    }
    printf("%f",result);
    return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mylxhccshhp
2013-10-10 · TA获得超过136个赞
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:126万
展开全部
float Cal(int a, int b, char o)
{
    float c = 0.0f;
    switch(o)
    {
    case '+':
        c = a + b;
        break;
    case '-':
        c = a - b;
        break;
    case '*':
        c = a * b;
        break;
    case '/':
        c = a / (float)b;
        break;
    }
    return c;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式