C ++根据调用的函数创建数组

时间:2017-11-16 00:40:03

标签: c++

例如,假设我有这个简单的代码:

using namespace std;
char re = 'y';
void mult(int one, int two)
{
    int mult = 1;
    mult = one * two;
    cout << mult << endl;
}

void add(int one, int two)
{
    int add = 0;
    add = one + two;
    cout << add << endl;
}

void rep(int one, int two)
{
}

void ask()
{
    int re;
    cout << "do you want return to the menu? (1/2)" << endl;
    cin >> re;
}

int main()
{
    char re;
    int one;
    int two;

    cout << "enter the number one:" << endl;
    cin >> one;
    cout << "enter the number two:" << endl;
    cin >> two;
    cout << endl;

    cout << "Multiply - 1" << endl;
    cout << "Add      - 2" << endl;
    cout << "Reprint  - 3" << endl;
    cout << endl;
    int menu;
    if (re == 'y')
    {
        cout << "select the function ";
        cin >> menu;
        switch (menu)
        {
            case 1:
                mult(one, two);
                ask();
                break;
            case 2:
                add(one, two);
                ask();
                break;
            case 3:
                rep(one, two);
                break;
            default:
                cout << "no such thing" << endl;
                break;
        }
    }

    else if (re != 'y')
    {
    }
    return 0;
}

我需要一个方法函数rep来打印出之前调用的函数的答案。

例如,如果函数mult被调用它应该打印多个答案,IF mult和add被调用然后它应该打印mult并添加函数答案,如果只添加那么只添加。

我正在考虑创建一个零数组并更改它,无论函数一或二被调出,然后以某种方式调用答案。但不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您可以使用全局变量。

int last_result = 0;
void mult(int a, int b)
{
  last_result = a * b;
  std::cout << last_result << std::endl;
}

void add(int a, int b)
{
  last_result = a + b;
  std::cout << last_result << std::endl;
}

void rep()
{
  std::cout << "Last result: " << last_result << std::endl;
}

您还可以让multadd函数返回结果并将结果存储在main中(并将其传递给rep函数)。

您可以通过引用last_resultadd函数传递mult变量。