c++ - 双重功能返回

标签 c++ function return double

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/

相关文章:

c++ - Eclipse CDT 5.0.1 (Ganymede) 缓慢的索引器问题

c++ - 转发非引用类型的引用

c++ - 如何从未排序的链表中删除重复项

kotlin - 从finally block 返回

c++ - 这个 26KB 的可执行文件中存储了什么?

c - 如何创建 C 头文件

c++ - 初始化无法从const char [3]转换为std::string *

java - 想要静态但不能支持?

java - 方法返回语句与 try-catch

c++ - 使用迭代而不是递归的拓扑排序