我收到两个错误:
代码中最后第二行的初始化元素不是常量
最后一行字符串常量之前应有声明说明符 '...'
#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);
}
由于您使用的是 printf
函数,因此请确保在文件开头包含 stdio.h
库。另外,请确保您在某处定义了常量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);
}
关于c - 初始化元素不是常量 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55266341/