函数的权力

Function Powers

本文关键字:函数      更新时间:2023-10-16

我必须编写一个main()例程来测试以下测试用例的结果:

力量(8,2)

电源(3)

电源(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);
}

将函数声明为

int pwr (int&, int);

但是你把它定义为

int power (int m, int n)

编译器在main中找不到函数pwr

将函数定义修改如下:

 int pwr(int m, int n)
 {
   if (n<=1)
      return m;
   else
      return m * pwr (m, n-1);
 }

由于您正在处理int s,因此不需要通过引用传递

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

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