为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
Making a triangle classifier for my intro to c++ class. I have a few questions
首先,我正在尝试找到一种方法来防止在执行最终集合中的 if 语句之一时运行其余代码。
我还想知道是否有更有效的方法来尝试确定给定边的最长和中间边。
我的代码:
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
double sideOne = 1;
double sideTwo =2 ;
double sideThree = 3;
int main()
{
cout<<fixed;
cout<<"Enter three numbers, corresponding to the side lengths of a triangle."<<endl;
while (sideOne+sideTwo <= sideThree || sideThree+sideOne <= sideTwo || sideTwo+sideThree <= sideOne)
{
cout<<"Enter the first side length."<<endl;
cin>>sideOne;
cout<<"Enter the second side length."<<endl;
cin>>sideTwo;
cout<<"Enter the third side length."<<endl;
cin>>sideThree;
if (sideOne+sideTwo <= sideThree || sideThree+sideOne <= sideTwo || sideTwo+sideThree <= sideOne)
{
cout<<setprecision(3)<<"The input "<<sideOne<<", "<<sideTwo<<", "<<sideThree<<" does not satisfy the triangle inequality. Enter different side lengths."<<endl;
}
else
{
double perimeter = sideOne + sideTwo + sideThree;
double area = sqrt((perimeter/2)*((perimeter/2)-sideOne)*((perimeter/2)-sideTwo)*((perimeter/2)-sideThree));
cout<<"The perimeter of your triangle is "<<setprecision(3)<<perimeter<<endl;
cout<<"The area of your triangle is "<<setprecision(3)<<area<<endl;
if (sideOne >= sideTwo && sideTwo >= sideThree)
{
cout<<"The longest side is "<<sideOne<<endl;
cout<<"The median side is "<<sideTwo<<endl;
}
else if (sideTwo >= sideOne && sideOne >= sideThree)
{
cout<<"The longest side is "<<sideTwo<<endl;
cout<<"The median side is "<<sideOne<<endl;
}
else if (sideThree >= sideOne && sideOne >= sideTwo)
{
cout<<"The longest side is "<<sideThree<<endl;
cout<<"The median side is "<<sideOne<<endl;
}
else if (sideOne >= sideThree && sideThree >= sideTwo)
{
cout<<"The longest side is "<<sideOne<<endl;
cout<<"The median side is "<<sideThree<<endl;
}
else if (sideTwo >= sideThree && sideThree >= sideTwo)
{
cout<<"The longest side is "<<sideTwo<<endl;
cout<<"The median side is "<<sideThree<<endl;
}
else if (sideThree >= sideTwo && sideTwo >= sideOne)
{
cout<<"The longest side is "<<sideThree<<endl;
cout<<"The median side is "<<sideTwo<<endl;
}
}
}
return 0;
}
我对此很陌生,所以新手词汇将不胜感激。感谢您的任何帮助
您可以随时通过调用 return 来阻止函数的其余部分。然而,如果,否则如果,否则如果的更好选择......结构只是使用开关盒。
有更有效的方法来查找最长边和中间边。 您多次比较相同的侧面。 这方面的一个例子是:
if (sideOne >= sideTwo && sideTwo >= sideThree)
...
else if (sideTwo >= sideThree && sideThree >= sideTwo)
尝试只比较每边一次。
相关文章:
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 以C++输出一个数字三角形
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- 给定一个用三角形镶嵌的补丁,如何修改其新的顶点位置
- 使用 C++ 库 GLEW 在 openGl 中绘制一个红色三角形
- 创建一个绿色三角形C Directx
- 创建一个程序以输出三角形平方数的4个
- 在OpenGL中打印一个红色三角形
- 如何打印一个不相等的三角形
- 我如何对此代码进行添加以使用我的 arduino 打印一个完整的三角形
- Direct3D:尝试绘制一个三角形,但什么也没显示
- 如何在 Qwidget 的中心设计一个三角形(在 QT 中使用 OpenGl)
- 输出一个三角形
- Qt和OpenGL,如果我使用属性,可以画一个三角形
- 在我点击的地方画一个三角形
- 用point类写一个三角形类
- GL VBO问题:第一个和最后一个三角形带没有正确显示
- 融合一个三角形循环并行化,计算子指标
- 用C++做一个三角形
- 加上另一个三角形