Я пытаюсь передать число и найти его корень
Я попытался запустить этот код для онлайн-компилятора, и я получил случайные числа, которые я не ввел с scanf
. Я попробовал это на онлайн-компиляторе, который можно найти здесь https://www.onlinegdb.com/online_c_compiler#.
По какой-то причине, что бы я ни положил, я получаю 8. Я также попробовал это в DEV-C ++, который можно найти здесь https://sourceforge.net/projects/orwelldevcpp/, в этом компиляторе, я всегда получаю 0 вместо моего входного числа. Существует также printf для подтверждения scanf, и мне кажется, что значение фактически становится моим вводом, но когда я вызываю функцию, все меняет любые идеи (спасибо за ваше время)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define g(x,num) 1.0/3.0*(2.0 * x + (num / x)) //f'(x,num)
#define var 1E-10//10^-10
#define f(x,num) x*x - num
double x;
int i;
double num;
void sqrtNR(double num){// **actual bug**
printf ("\nnum: %d\n", num);
x = num;
printf ("x: %d\n", x);
for(i;var < fabs(f(x,num)) ; i++) { **infinite loop**
x = x - ( f(x,num)/g(x,num) );
// printf ("x: %d\n", x);
}
printf ("metrhths %d\n", i);
return x;
}
int main(int argc, char** argv) {
printf("dwse ari9mo\n");
scanf("%lf", & num);
printf("%lf", num);
sqrtNR(num);
//printf("\nsrtNR : %lf", sqrtNR(num));
}
на самом деле вы знаете, по крайней мере, потому что теперь он работает на бесконечном цикле