Как сделать так, чтобы функция возвращала значение глобальной переменной (проблема с областью действия, я думаю)? - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь написать пользовательскую функцию 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 каждый раз.Я новичок во всем этом, поэтому любая помощь очень ценится.

...