响应此提示:
编写一个返回基指数值的函数
integerPower( base, exponent )
。例如,integerPower( 3, 4 ) == 3 * 3 * 3 * 3
。假设exponent
是正整数,非零整数,base
是整数。函数integerPower
应使用for
或while
来控制计算。不要使用任何数学库函数。
我写了这个程序:
#include <iostream>
#include <conio.h>
using namespace std;
int integer (int a, int b) {
int e;
for (int i = 1; i <= b; i++)
e *= a;
return (e);
}
int main () {
cout << "enter number and exponent";
cin >> num >> exp;
cout << num << "to the power" << exp << "is" <<;
int num, exp, n;
integer (num, exp, n);
getch ();
return 0;
}
由于某种原因,无论integer (int a, int b)
和a
的值是什么,函数b
都会返回0。为什么呢?
答案 0 :(得分:3)
您应该将e初始化为1。
int e = 1;
另外,您没有在正确的位置声明num
和exp
的类型。
int main () {
cout << "enter number and exponent";
int num, exp;
cin >> num >> exp;
cout << num << "to the power" << exp << "is" << integer (num, exp); // remove the third parameter
getch ();
return 0;
}
答案 1 :(得分:0)
在函数integer
内,初始化e
,如下所示:
int e = 1;
另外,请在int num, exp, n;
声明之前移动cin
。
答案 2 :(得分:0)
您可以在其他答案中阅读,您必须在main函数中声明num和exp变量,并在函数integer中将e初始化为1。但是你不需要使用命名空间std,只需将std ::添加到其成员的引用中,比如std :: cin,std :: cout,你的代码就会更清晰了。干杯!
答案 3 :(得分:0)
首先,不清楚为什么等于0的指数被排除在可接受的值之外。我会按照以下方式编写函数
int integerPower( int base, unsigned int exponent )
{
int result = 1;
while ( exponent-- != 0 ) result *= base;
return ( result );
}