Вы должны добавить любой блок кода, который хотите запустить первым во время выполнения, в функцию main
. В вашем случае вы должны поставить код:
double fp = derive(f, K);
printf("%lf\n",fp);
в main
функцию
int main() {
double fp = derive(f, K);
printf("%lf\n",fp);
}
Убедитесь, что вы включили библиотеку stdio.h
в начало файла, так как вы используете функцию printf
. Также убедитесь, что вы определили где-то постоянную K
. Я обновил ваш код в соответствии с моим предложением выше, и он скомпилирован без ошибок или предупреждений:
#include <stdio.h>
typedef double (*TFunc)(double);
double alpha,x;
double f(double x)
{
return x*x;
}
double derive(TFunc f, const double x0)
{
const double dx = 1.0e-6; // or similar
double dy = f(x0+dx)-f(x0-dx);
return dy/(2.*dx);
}
int main() {
const double K = 1.0;
double fp = derive(f, K);
printf("%lf\n",fp);
}