double a(0.0), b(0.0), d(0.0);
char c(' ');
double 加法(double a, double b){ return a + b; }
double 减法(double a, double b){ return a - b; }
double 乘法(double a, double b){ return a * b; }
double 除法(double a, double b){ return a / b; }
double 运算(double a, double b, char c)
{
switch (c)
{
case '+':d = 加法(a, b); break;
case '-':d = 减法(a, b); break;
case '*':d = 乘法(a, b); break;
case '/':d = 除法(a, b); break;
default:
std::cout << "错误!";break; }
return d;
}
do
{
std::cout << "请输入表达式:a + b,0 . 0退出" << endl;
std::cin >> a >> c >> b;
if (c == '.')break;
d = 运算(a, b, c);
std::cout << d << endl;
} while (1);
可能是输入的问题。能否给个输入,空格用下划线表示。
我想知道你输入的啥 另外你这个用法很奇葩啊 函数返回值竟然是个全局变量 最后还用这个全局变量来等于这个返回值 不过就你目前的代码来看 这样用也不耽误结果显示 应该是输入的问题