我必须编写一个main()例程来测试以下测试用例的结果:
电力(8,2)
电力(3,3)
权力(2,10)
使用cout在屏幕上显示计算值。 这是我到目前为止所做的,但它不适合我
#include <iostream>
#include <cmath>
using namespace std;
int pwr (int&, int);
int main ()
{
int m, n;
cout << "Enter two positive integers;";
cin >> m >> n;
cout << endl << "The power is " << pwr(m,n) << endl;
return 0;
}
int power (int m, int n)
{
if (n<=1)
return m;
else
return m * power (m, n-1);
}
答案 0 :(得分:2)
int pwr (int&, int);
应该是int power (int m, int n)
吗?
也许代码应该是这样的?
#include <iostream>
#include <cmath>
using namespace std;
int pwr (int, int);
int main ()
{
int m, n;
cout << "Enter two positive integers;";
cin >> m >> n;
cout << endl << "The power is " << pwr(m,n) << endl;
return 0;
}
int pwr (int m, int n)
{
if (n<=1)
return m;
else
return m * pwr (m, n-1);
}
答案 1 :(得分:2)
您将函数声明为
int pwr (int&, int);
但您将其定义为
int power (int m, int n)
因此编译器无法在pwr
中找到函数main
。
将功能定义更改为以下内容:
int pwr(int m, int n)
{
if (n<=1)
return m;
else
return m * pwr (m, n-1);
}
由于您正在处理int
,因此您无需通过引用传递。
答案 2 :(得分:0)
cmath
int pwr (int&, int)
vs int power (int m, int n)
(名称不匹配和参数不匹配)return m * power (m, n-1)
应该是正确的pwr
或power
。#include <iostream>
using namespace std;
int getPower(int, int);
int main ()
{
int value, power;
cout << "Enter two positive integers;";
cin >> value >> power;
cout << "The power is " << getPower(value,power) << endl;
return 0;
}
int getPower (int value, int power)
{
if (power<=1){
return value;
}
else{
return value * getPower (value, power-1);
}
}