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;
}
}
}
我不断收到警告:控件到达非空函数的末尾 [-Wreturn-type] } 消息。
我知道它与我向函数返回值的方式有关。该函数的目的是计算 f(b) = f(a) + (b - a)/(c - a)(f(c) - f(a))。很难解释等式是什么,但是我认为帮助返回就可以了。
最佳答案
您会收到警告,因为当“a” vector 的大小为零时,代码不会返回值。 它可能应该在该事件中返回零,除非错误代码更合适。
关于c++ - 双重功能返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34831939/