C++ 三角形C类和x2B类+;

C++ 三角形C类和x2B类+;,c++,algorithm,function,C++,Algorithm,Function,如果能提供任何帮助,我将不胜感激。我正在研究一个类,它根据三条边的输入计算三角形。不过,我对一些用于分析的算法相当迷茫。例如,我觉得我的最大的、最小的和类型的三角形算法是正确的,但前两个返回零,类型返回等边是等腰的。最后,我几乎完全迷上了isTriangle和isRight。我知道他们错了,但我不知道该做什么调整/ #include "Triangle.h" #include<iostream> #include<string> using namespace std;

如果能提供任何帮助,我将不胜感激。我正在研究一个类,它根据三条边的输入计算三角形。不过,我对一些用于分析的算法相当迷茫。例如,我觉得我的最大的最小的类型的三角形算法是正确的,但前两个返回零,类型返回等边是等腰的。最后,我几乎完全迷上了isTriangleisRight。我知道他们错了,但我不知道该做什么调整/

#include "Triangle.h"
#include<iostream>
#include<string>
using namespace std;

Triangle::Triangle()
{
    s1 = 1;
    s2 = 1;
    s3 = 1;
}

Triangle::Triangle(int x)
{
    s1 = x;
    s2 = x;
    s3 = x;
}

Triangle::Triangle(int x, int y, int z)
{
    s1 = x;
    s2 = y;
    s3 = z;
}

void Triangle::setSide1(int x)
{
    s1 = x;
}

void Triangle::setSide2(int x)
{
    s2 = x;
}

void Triangle::setSide3(int x)
{ 
    s3 = x;
}

int Triangle::getSide1()
{
    return s1;
}

int Triangle::getSide2()
{
    return s2;
}

int Triangle::getSide3()
{ 
    return s3;
}

int Triangle::perimeter()
{
    int perim = s1 + s2 + s3;

    return perim;

}

int Triangle::largestSide()
{
    int largest = 0;

    if (s1 >= s2 && s3)
        s1 = largest;
    else if (s2 >= s1 && s3)
        s2 = largest;
    else 
        s3 = largest;

    return largest;

}

int Triangle::smallestSide()
{
    int smallest = 0;

    if (s1 <= s2 && s1 <= 3)
        smallest = s1; 
    else if (s2 <= s1 && s2 <= s3)
        smallest = s2;
    else
        smallest = s3;

    return smallest;
}

bool Triangle::isRight()
{
    if (s3 == s1 + s2 || s2 == s1 + s3 || s1 == s2 + s3)

        return true;
    else
        return false;


}

bool Triangle::isTriangle()
{
    if (s1 + s2 < s3 || s1 + s3 < s2 || s2 + s3 < s1)

        return false;
    else
        return true;

}

string Triangle::typeTriangle()
{

    if (&Triangle::isTriangle == false)
        return "This is not a triangle";
    else if (s1 == s2 == s3)
        return "Equilateral";
    else if ((s1 == s2 && s1 != s3 && s2 != s3) || (s2 == s3 && s2 != s1 && s3 != s1))
    return "Isosceles";
    else if (s1 != s2 && s2 != s3)
        return "Scalene";



}
#包括“Triangle.h”
#包括
#包括
使用名称空间std;
三角形::三角形()
{
s1=1;
s2=1;
s3=1;
}
三角形::三角形(int x)
{
s1=x;
s2=x;
s3=x;
}
三角形::三角形(整数x,整数y,整数z)
{
s1=x;
s2=y;
s3=z;
}
空心三角形::SetSid1(int x)
{
s1=x;
}
空心三角形::setSide2(int x)
{
s2=x;
}
空心三角形::setSide3(int x)
{ 
s3=x;
}
int Triangle::getSide1()
{
返回s1;
}
int Triangle::getSide2()
{
返回s2;
}
int Triangle::getSide3()
{ 
返回s3;
}
int三角形::周长()
{
int perim=s1+s2+s3;
回归期;
}
int三角形::最大边()
{
int最大=0;
如果(s1>=s2&&s3)
s1=最大值;
如果(s2>=s1&&s3)为else
s2=最大值;
其他的
s3=最大值;
回报最大;
}
int Triangle::smallestSide()
{
int=0;

如果(s1如果s1==s2==s3为真,并不意味着两边相等

您需要写入s1==s2&&s1==s3

要看到这一点,请重写为布尔值。将b1设为false,b2不等于b3

B2==b3为false,这将与b1.Oops进行比较


当且仅当较长边的平方等于较短边的平方和时,三角形才具有直角。

s1=最大;使成员常数表示这条直线。我建议查看三角形的定义,以确定如何最好地对其进行分类(尤其是三角函数)记住三角形是由角度和侧面定义的。现在,你只对边进行评估。C++中没有<代码> s1==s3= /s> <代码>等于<代码>(S1= S2)=S3</C>在C++中(即,你将比较<代码> S3< /代码>到<代码> 0 < /代码>或<代码> 1 < /代码>)“Kevin Check,从这个链接中,我想你会从学习更多的三角学中获益匪浅:一个三角形是由三个边唯一决定的。也不需要考虑角度。你的意思是S1==S2&S1==S3。