weixin_49863942 2021-10-06 11:50 采纳率: 100%
浏览 38
已结题

大一新生C++,程序错误百出,但是不知道哪里错了

设计一个简单的计算器程序,根据输入的操作数和运算符可以完成 + 、—、* 、/ 、% 运算。输出结果必须是一个完整的算术运算式的格式。例如 :输入3.1 5 + ,输出结果是 3.1+5=8.1。

注意:当输入的运算符是"/"且第二个操作数是0时,输出“除数不能为0”

  当输入的运算符是"%"且操作数中含有小数(如6.5)时,输出“error!”。

输入格式:

按顺序依次输入两操作数和运算符。如3 5 /

请nice person能仔细讲讲哪里错了,为什么错了,万分感谢!
Q:switch中每个case 语句中想执行多个语句
想要输入运算符,并且在case的常量设为运算符进行匹配
想要判断该数是否为整数

#include <iostream>
#include<typeinfo>
#include<iomanip>
using namespace std;

int main()
{   double a,b;
char ys;
    cin>>a>>b>>ys;
    switch(ys)
   {  case +:cout<<a<<"ys"<<b<<"="<<a+b;break;
      case -:cout<<a<<"ys"<<b<<"="<<a-b;break;
      case *:cout<<a<<"ys"<<b<<"="<<a*b;break;
      case /:if(b==0)
             cout<<"除数不能为0";
            else cout<<a<<"ys"<<b<<"="<<a/b;
            break;

    case % :if(typeid(a).name()=="int"&& typeid(b).name()=="int" )
    cout<<a<<"ys"<<b<<"="<<a%b;
    else cout<<"error";
    break;}
    return 0;
}



  • 写回答

2条回答 默认 最新

  • qfl_sdu 2021-10-06 12:22
    关注

    修改如下:

    #include <iostream>
    #include<typeinfo>
    #include<iomanip>
    using namespace std;
    int main()
    {   
        double a,b;
        char ys;
        cin>>a>>b>>ys;
        switch(ys)
        {  
        case '+':cout<<a<<ys<<b<<"="<<a+b;break;
        case '-':cout<<a<<ys<<b<<"="<<a-b;break;
        case '*':cout<<a<<ys<<b<<"="<<a*b;break;
        case '/':
            {
                if(b==0)
                    cout<<"除数不能为0";
                else 
                    cout<<a<<ys<<b<<"="<<a/b;
            }
                break;
        case '%':
            {
                if(a == (int)a && b == (int)b)
                    cout<<a<<ys<<b<<"="<<(int)a%(int)b;
                else 
                    cout<<"error";
            }
                break;
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 修改了问题 10月6日
  • 创建了问题 10月6日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看