关于#结构体#的问题,如何解决?

问题遇到的现象和发生背景

结构体定义之后,定义了三个函数然后调用,报错说不存在适当的函数

用代码块功能插入代码,请勿粘贴截图
#include 
#include

using namespace std;
struct Segment               //定义线段
{
    double x1, y1;            //端点1
    double x2, y2;            //端点2
    double len;              //长度
    double gradient;         //斜率
};
Segment Input()
{
    Segment s;
    cin >> s.x1 >> s.y1 >> s.x2 >> s.y2;
    return s;
}
Segment Calculate(Segment seg[])
{
    Segment s;
    s.len = sqrt((s.x1 - s.x2) * (s.x1 - s.x2) + (s.y1 - s.y2) * (s.y1 - s.y2));
    s.gradient = (s.y1-s.y2)/(s.x1-s.x2);
}
Segment Output(Segment seg[])
{
    Segment s;
    cout << s.x1 << s.y1 << s.x2 << s.y2 << s.len << s.gradient;
}
void sort(Segment seg[], double len,int a)
{
    for (int i = 0; i < len - 1; i++)
    {
        for (int j = 0; j < len - i - 1; j++)
        {
            if (seg[j].len < seg[j + 1].len)
            {
                Segment temp = seg[j];
                seg[j] = seg[j + 1];
                seg[j + 1] = temp;
            }

        }
    }
}

int main()
{
    const int N = 4;
    Segment seg[N];              //线段数组
    int i, j;

    cout << "输出" << N << "条线段各自的2个端点坐标(x1,y1和x2,y2)" << endl;
    for (i = 0; i < N; i++)
    {
        seg[i] = Input();        //读入一条线段的2端点坐标值
        Calculate(seg[i]);       //根据端点计算线段长度、斜率
    }
    cout << endl;               //输出间隔

    cout << "输出" << N << "组线段端点坐标、长度、斜率" << endl;
    for (i = 0; i < N; i++)       //输出各条线段数据
        Output(seg[i]);          //每条线段占一行

    cout << endl;

    cout << "按线段长度降序排序" << endl;

    cout << endl;

    sort(seg, N, 0);          //按照长度降序排序,第3个参数为排序方式,1升序,0降序

        cout << "输出按长度排序后" << N << "组线段端点坐标、长度、斜率" << endl;
    for (i = 0; i < N; i++)      //输出排序后线段数据
        Output(seg[i]);

    cout << endl;
}

说明此函数不存在,将报错的函数替换掉