希望有大神改进一下。

#include<bits/stdc++.h>
using namespace std;
double afd(double a, double b){
  return a+b;//加法
}
double add(double a, double b){
  return a-b;//减法
}
double acd(double a, double b){
  return a*b;//乘法
}
double aef(double a, double b){
  if(b == 0){
    throw runtime_error(“除数不能为零”);
  }
  return a/b;//除法
}
int asd(int a, int b){
  return a%b;//取余
}
int main()
{
  double a,b,d;
  char c;
  cin>>a>>c>>b;
  switch(c){
    case ‘+’:
      d=afd(a,b);
      break;
    case ‘-’:
      d=add(a,b);
      break;
    case '':
      d=acd(a,b);
      break;
    case ‘/’:
      d=aef(a,b);
      break;
    case ‘%’:
      d=asd(a,b);
      break;
    default:
      throw runtime_error(“无效操作”);
}
  cout<<d;

  return 0;
}

格式化一下
image

乘法真的可以不写乘号 \times 么?

还有就是取模运算为啥是俩int类型的

要么其他有改成int,除法强转一下

改了

模运算写double会报错

改好了

(帖子已被作者删除)

公式:a mod b = a - b * floor(a / b)然后就可给double模了!此外,在C++math.h库中有fmod也可以做到

谢谢