题目描述:
输入三个边长a,b,c,判断能否构成三角形,三角形是什么类型。
解题思路:
(1)输入三边长a,b,c;
(2)三边长排序,从小到大a>b>c;
(3)若a+b>c则能构成三角形,否则不是三角形;
(4)若是三角形。如果三边相等则为等边三角形;如果只有两边相等则为等腰三角形;否则为一般三角形;
(5)若aa+bb>cc为锐角三角形;
(6)若aa+bb=cc为直角三角形;
(7)若ac+bb<c*c为钝角三角形;
C++代码实现如下:
#include<iostream>
#include<algorithm>//STL标准算法模板库
using namespace std;
string getTrangleType(int a,int b,int c);
int main(){
int a,b,c;
cin>>a>>b>>c;//输入三边长
cout<<getTrangleType(a,b,c)<<endl;
return 0;
}
string getTrangleType(int a,int b,int c){//判断三角形类型
string type;//类型
int length[3]={a,b,c};
sort(length,length+3);//从小到大排序
a=length[0];
b=length[1];
c=length[2];
if(a+b>c){
if(a==b&&b==c){
type="等边三角形";
}else if(a==b||b==c||a==c){
if(a*a+b*b==c*c){
type="等腰直角三角形";
}else{
type="等腰三角形";
}
}else if(a*a+b*b==c*c){
type="直角三角形";
}else if(a*a+b*b<c*c){
type="钝角三角形";
}else if(a*a+b*b>c*c){
type="锐角三角形";
}
}else{
type="不是三角形";
}
return type;
}