结构体定义之后,定义了三个函数然后调用,报错说不存在适当的函数
#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;
}
说明此函数不存在,将报错的函数替换掉