在XY点的数组中找到三个XY点的最大面积
Finding the maximum area of three XY points in an array of XY points
我试图在XY点的数组中以(X,Y)的形式找到三个XY点的最大面积。
我目前得到的错误called object type 'double' is not a function or function pointer
区域函数被调用,我不知道为什么。同样,我也不知道这个函数是否接近正确,我只是在这一点上瞎折腾。谢谢你的帮助!
double area( const Point & a, const Point & b, const Point & c){
double side1 = a.distance(b);
double side2 = b.distance(c);
double side3 = c.distance(a);
double s = (side1 + side2 + side3 / 2.0);
return sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
double maxArea( const Point a[], unsigned elements ){
double area = 0;
double tempArea = 0;
for (unsigned i = 0 ; i < elements; i++)
for (unsigned n = 0; n < elements; n++)
for (unsigned p = 0; p < elements; p++) {
tempArea = area(a[i],a[n],a[p]); //error here
if(tempArea > area){
area = tempArea;
}
}
return area;
}
double area = 0;
tempArea = area(a[i],a[n],a[p]);
///^^^
与您的函数area
具有相同的名称。尝试使用不同的变量名称,例如:maxArea
。同时,最好将函数名改为动词开头,例如:getArea
或computeArea
。
还有一点:
double s = (side1 + side2 + side3 / 2.0);
应该 double s = (side1 + side2 + side3) / 2.0;
我建议你应该看看你的函数和变量的命名方式。它们不是很清楚。
将在此区域
之前使用。double area( const Point & a, const Point & b, const Point & c)
因为它们的作用域。
更改这两个名称,应该可以解决问题。
相关文章:
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 在 2D 向量中使用第三个 [ ] 有什么意义?
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 如何知道n!是否可以表示为三个连续数字的乘法?
- 我有三个 getline,但是一旦编译,输入就太多了
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 有没有更好的方法对C++中的三个整数进行排序?
- 如何检查第三个 API 是否在 Linux 中为 c/c++ 程序创建了一个新线程?
- 为什么 getch 在按下函数或箭头键时返回三个值?
- 使用三个数字比较器进行排序
- 我想在C++代码中比较这三个术语
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- 我该如何编码,使计算机知道两个名称条目和三个名称条目之间的区别
- 为什么我需要三个嵌套的大括号来调用赋值运算符,将const引用到二维数组
- 如何通过通用引用或std::forward将这三个c++模板函数合并为一个
- 首先处理第二个和第三个堆与第一个和第二个堆之间的逻辑差异
- 异常处理:如果用户输入不是三个特定字符之一
- 为什么将三个变量与 == 一起比较会计算为 false?
- 重载运算符 new 和运算符 delete 带有三个参数
- 在XY点的数组中找到三个XY点的最大面积