-1

このプロンプトへの応答:

integerPower( base, exponent )底指数の値を返す関数を書きなさい。たとえば、integerPower( 3, 4 ) == 3 * 3 * 3 * 3. exponentは正の非ゼロ整数であり、整数であると仮定しbaseます。関数は、またはをintegerPower使用して計算を制御する必要があります。数学ライブラリ関数は使用しないでください。forwhile

私はこのプログラムを書きました:

#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)の値に関係なく 0 を返します。なんで?ab

4

4 に答える 4

3

e を 1 に初期化する必要があります。

int e = 1;

また、正しい場所でnumandの型を宣言していません。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;
}
于 2013-12-21T11:37:31.040 に答える
0

関数内で、次のようintegerに初期化eします。

int e = 1;

また、ステートメントint num, exp, n;の前に移動します。cin

于 2013-12-21T11:37:03.047 に答える
0

まず第一に、0 に等しい指数が許容値として除外された理由が明確ではありません。私は次のように関数を書きます

int integerPower( int base, unsigned int exponent )
{
   int result = 1;

   while ( exponent-- != 0 ) result *= base;

   return ( result );
}
于 2013-12-21T13:08:26.247 に答える