我的计算器出了什么问题?(用c ++制作)

时间:2013-07-28 02:01:04

标签: c++ visual-c++ calculator

出于某种原因,它不会打印我已经尝试过的所有返回语句,但我无法正确理解。

//calculator
#include <iostream>
using namespace std;
int input1;
int input2;

int add(int input1, int input2)
{
    cout<<"Enter two numbers to add: ";
    cin>> input1,input2;
    return  (input1 +  input2);
}
int subtract(int input1, int input2)
{
    cout<<"Enter first number to subtract: ";
    cin>> input1;
    cout<<"Enter second number to subtract: ";
    cin>> input2;
    return (input1 -  input2);
}
int multiply(int input1, int input2)
{
cout<<"Enter two numbers to multiply: ";
cin>>  input1, input2;
return (input1 * input2);
}

int main()
{
    cout<<"what do you want to do: ";
    int selection;
    cout<<"1.add\n";
    cout<<"2.subtract\n";
    cout<<"3.multiply\n";
    cin>>selection;
    if (selection ==  1) {
        return add(input1, input2);
        return input1 + input2;
    }
    else if (selection ==  2) {
        return subtract(input1, input2);
        return input1 - input2;
    }
    else if (selection ==  3) {
        return multiply( input1, input2);
        return input1 * input2;
    }
    else{
        cout<<"Error choice not available";
    }
    cin.get();
    system("pause");
}

4 个答案:

答案 0 :(得分:3)

  

“由于某种原因,它不会打印我的退货声明”。

这是因为您不打印任何内容,只需从main返回函数的结果。

这是你的问题:

if (selection ==  1) {
    return add(input1, input2);
    return input1 + input2;
    // no printing statment
}
else if (selection ==  2) {
    return subtract(input1, input2);
    return input1 - input2;
    // no printing statment here as well
}
else if (selection ==  3) {
    return multiply( input1, input2);
    return input1 * input2;
    // nither here 
}

你应该这样打印:

if (selection ==  1) {
    cout << add(input1, input2) << endl;
}
else if (selection ==  2) {
    cout << subtract(input1, input2) << endl;
}
else if (selection ==  3) {
    cout << multiply( input1, input2) << endl;
}

此外,您需要像在减法功能中那样从用户那里获得输入,即更改此内容:

cout<<"Enter two numbers to add: ";
cin>> input1,input2;

cout<<"Enter two numbers to multiply: ";
cin>>  input1, input2;

对此:

cout<<"Enter first number to subtract: ";
cin>> input1;
cout<<"Enter second number to subtract: ";
cin>> input2;

答案 1 :(得分:0)

基本上,您没有看到返回值,因为您没有将它们打印到屏幕上。 要么在每个例程中,要么在main例程中。

您可能还想删除主例程中的所有return语句;他们每个人都会立即结束正在运行的程序。 (提示:删除每个一个是不够的。)

答案 2 :(得分:0)

main中的“return”将立即停止执行程序并将退出代码返回给OS。此退出代码可用于错误检查,结果检查等...但不能用于显示。在你的代码中,它将在第一次函数调用后停止,从未到达下一个return语句,但即使达到了它,除了将数字返回给系统之外什么都不会发生

答案 3 :(得分:0)

只是给出一个稍微完整的解释 - 你在main中的return语句与其他函数完全相同 - 返回一个值。正如Ran Eldan所提到的,你需要使用cout打印到控制台,就像你要求输入一样。当您在main中返回一个int时,实际上是将该数字返回给操作系统,以用作执行后要检查的程序状态代码(“0”通常是“一切顺利”的代码)。您可以使用“echo $?”在UNIX终端(Mac OSX或Linux)中实际检查此值。程序结束后(没有报价)。使用您当前的程序结构,您可以通过这样做获得结果,但这显然不是您想要的。