Написание функции экспоненты Без военнопленного или Умножения - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь написать функцию, которая принимает два входных параметра и вычисляет результат повышения значения первого входа до значения второго входа и возвращает результат.Вам не разрешается использовать оператор умножения (*) для выполнения умножения, а также не разрешается использовать любые встроенные функции C ++, которые непосредственно приводят к результату возведения в степень.

Типы данных: функция работает правильно для обоих входовбыть положительными, нулями или единицами, и когда второй вход является отрицательным.мое возвращение всегда 0, что я делаю не так

#include <iostream>

using namespace std;

int exp(int, int);

int main()
{
    int num1, // to store first number
        num2, // to store second number
        value = 0;

    // read numbers
    cout << "Enter first number: ";
    cin >> num1;
    cout << "Enter second number: ";
    cin >> num2;

    // call function
    exp(num1, num2);

    // print value
    cout << "The value of " << num1 << " to the " << num2 << " is: " << value << endl << endl;

    system("pause");
    return 0;
}

// function definition
int exp(int a, int b)
{
    int result = 0;

    for (int i = 0; i < a; i++)
    {
        result += b;
    }
    return result;
}

1 Ответ

1 голос
/ 28 марта 2019

Правда, вы реализуете умножение, а не возведение в степень, но причина, по которой вы получаете 0 каждый раз, заключается в том, что вы не сохраняете возвращаемое значение вашего вызова функции в переменной value, а вместо этого просто выводите ноль каждый раз.

...