我有两个错误: Initializer元素在代码中下面的第二行不是常量 在最后一行中字符串常量之前的预期声明说明符'...'
#define K 10.0
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);
}
double fp = derive(f, K);
printf("%lf\n",fp);
您应该在执行期间首先将要运行的任何代码块添加到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);
}