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