【发布时间】:2016-01-17 09:24:22
【问题描述】:
double interpolation(int input, vector<int>&a, vector<double>&b)
{
for(int i=0;i<a.size();++i)
{
if(input==a.at(i))
return b.at(i);
}
for(int i=0;i<a.size()-1;++i)
{
if(input>a.at(i)&&input<a.at(i+1))
{
int low=i;
int high=i+1;
double m= b.at(low);
int n= input-a.at(low);
int p= a.at(high) - a.at(low);
double q= b.at(high) - b.at(low);
double fp = (m+n) / (p*q);
return fp;
}
}
}
我不断收到警告:控制到达非 void 函数的结尾 [-Wreturn-type] } 消息。
我知道这与我向函数返回值的方式有关。该函数的目的是计算 f(b) = f(a) + (b - a)/(c - a)(f(c) - f(a))。很难解释等式是什么,但是我认为帮助返回可以解决问题。
【问题讨论】:
标签: c++ function return double