定义一个Triangle三角形类,包括数据成员三边边长(int类型)、判断三角形形状的成员函数。键盘输入三角形三边边长,判断此三角形形状(其中,等腰直角三角形归为等腰三角形类)。
构成等边三角形,输出“A equileteral triangle”;
构成等腰三角形,输出“A isosceles triangle”;
构成直角三角形,输出“A right triangle”;
构成三角形,但不是以上三种,则输出“A triangle”;
不构成,输出“Not a triangle”。
输入样例
3 4 5
输出样例
A right triangle
#include<bits/stdc++.h>
using namespace std;
class triangle{
public:
void flag();
void setabc(int aa,int bb,int cc);
private:
int a,b,c;
}mytriangle;
void triangle::setabc(int aa,int bb,int cc){//按从小到大顺序输入abc
c=(cc>aa)?(cc>bb?cc:bb):(aa>bb?aa:bb);
a=(cc<aa)?(cc<bb?cc:bb):(aa<bb?aa:bb);
b=aa+bb+cc-a-c;
}
void triangle::flag(){
if(a+b<=c||a<=0||b<=0||c<=0)cout<<"Not a triangle";//先判断是否为三角型
else if(a==b&&a==c)cout<<"A equileteral triangle";
else if(a==b||b==c)cout<<"A isosceles triangle";
else if(a*a+b*b==c*c)cout<<"A right triangle";//勾股定理
else cout<<"A triangle";
}
int main(){
ios::sync_with_stdio(false);
int d,e,f;
cin>>d>>e>>f;
mytriangle.setabc(d,e,f);
mytriangle.flag();
}