黑盒测试/三角形(OC)

typedef enum {

    

    notTriangle,

    normalTriangle,

    isoscelesTriangle,

    equilateralTriangle,

    rightTriangle

    

}Triangle;

- (Triangle)isTriangle:(float) a b:(float) b c:(float) c {

    

    if(a == 0.0 || b == 0.0 || c == 0.0) // 非三角形

        return notTriangle;

    

    if((a + b > c) && (b + c > a) && (a + c > b)){ // 为三角形

        if (a*a == b*b + c*c || b*b == a*a + c*c || c*c == a*a + b*b)  // 为直角三角形

            return rightTriangle;

        else

            if((a == b) && (b == c)) // 等边三角形

                return equilateralTriangle;

        if((a == b) || (b == c) || (a == c)) // 等腰三角形

            return isoscelesTriangle;

        else // 普通三角形

            return normalTriangle;

    }else { // 非三角形

        return notTriangle;

    }

}

原文地址:https://www.cnblogs.com/lancetalks/p/5274766.html