1.思路
最重要的一点是:两边之后大于第三边才是三角形,这是必不可少的!
然后可以考虑用函数的形式来判断每一种情况。
2.源码
//1.两边之和小于第三边 输出 Not triangle
//2. a^2+b^2==c^2 输出 Right triangle
//3. a^2+b^2 > c^2 输出 Acute triangle
//4. a^2+b^2 < c^2 输出 Obtuse triangle
//5. a=b&&a+b > c 输出 Isosceles triangle
//6. a=b=c 输出 Equilateral triangle
#include<bits/stdc++.h>
using namespace std;
void triangle1(int a,int b,int c){
if(a+b<=c){
cout<<"Not triangle"<<endl;
}
}
void triangle2(int a,int b,int c){
if(a*a+b*b==c*c &&a+b>c){
cout<<"Right triangle"<<endl;
}
}
void triangle3(int a,int b,int c){
if(a*a+b*b>c*c &&a+b>c){
cout<<"Acute triangle"<<endl;
}
}
void triangle4(int a,int b,int c){
if(a*a+b*b<c*c &&a+b>c){
cout<<"Obtuse triangle"<<endl;
}
}
void triangle5(int a,int b,int c){
if( (a==b&&a+b > c ) || (b==c&&a+b >c) ){
cout<<"Isosceles triangle"<<endl;
}
}
void triangle6(int a,int b,int c){
if(a==b&& b==c &&a+b>c){
cout<<"Equilateral triangle"<<endl;
}
}
int main(){
int z[3];
for(int i=0;i<3;i++)
cin>>z[i];
sort(z,z+3);
int a=z[0],b=z[1],c=z[2];
triangle1(a,b,c);
triangle2(a,b,c);
triangle3(a,b,c);
triangle4(a,b,c);
triangle5(a,b,c);
triangle6(a,b,c);
}