0

出于某种原因,它不会打印我已经尝试过所有事情的退货声明,但我就是无法做到正确。

//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

4 回答 4

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;
于 2013-07-28T02:07:19.533 回答
0

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

于 2013-07-28T03:11:15.763 回答
0

基本上,您看不到返回值,因为您从未将它们打印到屏幕上。要么在你的每个例程中这样做,要么在你的main例程中这样做。

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

于 2013-07-28T02:08:31.903 回答
0

returnin main 将立即停止执行程序并将退出代码返回给操作系统。此退出代码可用于错误检查、结果检查等...但操作系统不会将其打印到控制台

在您的代码中,它将在第一次函数调用后停止,并且永远不会到达下一个 return 语句。你会收到很多关于无法访问代码的警告。始终启用编译器中的所有警告并阅读它们,这对帮助您解决许多错误非常有帮助

但是即使到达了下一条语句,除了将数字返回到您可以通过echo %errorlevel%在 cmd 或echo $?bash 中运行来检查的系统之外,什么也不会发生

于 2013-07-28T02:14:29.793 回答