功能力量

时间:2013-04-02 02:29:47

标签: c++

我必须编写一个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);
}

3 个答案:

答案 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)

  1. 无需加入cmath
  2. 函数声明和定义不匹配int pwr (int&, int) vs int power (int m, int n)(名称不匹配和参数不匹配)
  3. 递归调用函数return m * power (m, n-1)应该是正确的pwrpower
  4. 使用一些有意义的函数名称和变量名称。
  5. 使用缩进和括号使代码清晰。

  6. #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);
        }
    }