Я пытаюсь написать пользовательскую функцию pow
, которая сравнивается с фактическим результатом pow()
.Я думаю, что у меня проблема с областью действия, но я не могу понять, как заставить мою функцию MyPower
возвращать результат моей пользовательской функции pow
в глобальную переменную с именем 'result
'.В конечном счете мне просто нужно число от result
, чтобы я мог видеть, совпадает ли оно с тем, что получил pow()
.
#include <stdio.h>
#include <math.h>
double base, pow_result, x , result;
int exponent, i;
double MyPower(double base, int exponent);
void DoTest(double base, int exponent);
int main(void){
int i, j;
for(i = 1; i < 5; i++){
for(j = 1; j < 5; j++){
DoTest(i,j);
}
}
}
double MyPower(double base, int exponent){
for(i = 1; i < exponent; i++){
base *= base;
result = base;
}
return result;
}
void DoTest(double base, int exponent){
pow_result = pow(base, exponent);
if(result == pow_result){
printf("Testing %f to the %d power\n", base, exponent);
}
else{
printf("%f to the %d is %f, result is %f\n", base, exponent, pow_result, result);
printf("doesnt work\n");
}
}
Я ожидаю, что результат будет возвращен, как только он станет значением baseк правильной власти.Тогда это будет сравниваться с pow_result и они будут равны.На данный момент pow_result возвращает правильное число, но результат равен 0 каждый раз.Я новичок во всем этом, поэтому любая помощь очень ценится.