【问题标题】:Finding the maximum area of three XY points in an array of XY points在 XY 点数组中求三个 XY 点的最大面积
【发布时间】:2013-05-02 22:45:32
【问题描述】:

我正在尝试使用 (X,Y) 形式的 XY 点数组中的三个 XY 点来查找最大面积。

我目前在调用 area 函数时遇到错误 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; 
}

【问题讨论】:

    标签: c++ arrays object compiler-errors


    【解决方案1】:
    double area = 0;
    
    tempArea = area(a[i],a[n],a[p]); 
             ///^^^
    

    与您的函数area 同名。尝试使用不同的变量名,例如:maxArea。同时,最好将你的函数名改为以动词开头,例如:getAreacomputeArea

    还有一点:

     double s = (side1 + side2 + side3 / 2.0);
    

    应该是

     double s = (side1 + side2 + side3) / 2.0;
    

    【讨论】:

    • 做到了。我会尽可能地标记你的正确。关于该功能是否可以正常工作的任何想法?
    • @user1681673 你的意思是你不确定area函数是否能正常工作?
    • 最大面积函数。我有点迷失了这个。
    • @user1681673 您的想法看起来不错。尝试从这组点中制作所有可能的三角形。你可能应该稍微改变你的嵌套 for 循环,因为在某些情况下 i,n 和 p 是相同的,你不能形成一个只有 1 个点的三角形。
    • 我想我是用同样的想法让它工作的。感谢您的帮助,我很感激。
    【解决方案2】:

    我建议你看看你命名函数和变量的方式。他们不是很清楚。

    这个区域 双面积 = 0;

    将在此区域之前使用

    double area( const Point & a, const Point & b, const Point & c)
    

    因为他们的范围。

    更改这两个的名称,它应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多