В ответ на это приглашение:
Написать функцию
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)
возвращает 0 независимо от того, что значения a
а также b
являются. Зачем?
Вы должны инициализировать е в 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;
}
Внутри функции integer
, инициализировать e
как это :
int e = 1;
Кроме того, двигаться int num, exp, n;
перед cin
заявление.
Как вы можете прочитать в других ответах, вы должны объявить переменные num и exp в основной функции и инициализировать e в 1 в целочисленном значении функции. Но вам не нужно использовать пространство имен std, вы просто добавляете std :: к ссылке на его члены, например std :: cin, std :: cout, и ваш код будет еще более понятным. Ура!
Прежде всего непонятно, почему показатель степени, равный 0, был исключен как приемлемое значение. Я бы написал функцию следующим образом
int integerPower( int base, unsigned int exponent )
{
int result = 1;
while ( exponent-- != 0 ) result *= base;
return ( result );
}