Я переставил его так, чтобы он соответствовал требованию, однако, когда я запускаю код, он возвращает «неопределенную ссылку на« Power (int, int, int) »). Я свел его к одной строке, но я не знаю, какчтобы решить ее. Сравнивая ее с аналогичными примерами, которые я сделал, похоже, все в порядке. Я считаю, что проблема заключается в том, что он не передает «return» обратно на главную.
#include <iostream>
int Power( /* in */ int pow, /* in */ int x, /* out */ int &result); //prototype
using namespace std;
int main()
{
int pow;
int x;
int result;
cout << "Enter power: "; //prompt for integer in for power to be raised by
cin >> pow; //integer in
cout << "Enter value to be raised to power: "; //prompt for integer to be raised
cin >> x; //integer in
cout << Power(pow, x, result); /*function results output. returns input of Power function***
This line is the problem but why...
If I remove "(pow,x,result)" it will compile but it does not calculate properly.
If I take the while loop from the Power function by itself it calculates fine.
If I replace Power ((pow,x,result) with 'result' it makes a really big number...
*/
return 0; //return
}
int Power( /*in */ int pow, /*in */ int x, /*out */ int result); //Power function should calculate the result of raising 'x' to the 'pow' entered...
{
result = 1; //result is set at 1 by default
while (pow > 0) //while loop with pow set to greater than 0
{
result = result * x; //calculation for raising x by pow
pow--;
}
return result; //returning while loop results to function
}