发布网友 发布时间:2022-04-23 15:53
共2个回答
热心网友 时间:2023-10-08 22:46
楼上的基本可以,不过漏了点东西,构成三角形还有个条件是任意两边之差小于第三边,另外没有打印能构成普通三角形的情况,我改进了下
#include<iostream>
#include <math.h>
using namespace std;
void main(){
cout<<"输入三边边长:"<<endl;
double a,b,c;
cin>>a;
cin>>b;
cin>>c;
if(a+b>c&&a+c>b&&b+c>a&&fabs(a-b)<c&&fabs(a-c)<b&&fabs(b-c)<a){
if(a==b&&b==c){
cout<<"可构成等边三角形:"<<endl;
}
else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a){
if(a==b||b==c||a==c){
cout<<"可构成等腰直角三角形:"<<endl;
}
else cout<<"可构成直角三角形"<<endl;
}
else if(a==b||a==c||b==c){
cout<<"可构成等腰三角形"<<endl;
}
else
{
cout << "可构成普通三角形" << endl;
}
}
else cout<<"不能构成三角形"<<endl;
}
热心网友 时间:2023-10-08 22:47
时间匆忙,没有调试,你试一下吧!不行再告诉我!
#include<iostream>
using namespace std;
void main(){
cout<<"输入三边边长:"<<endl;
double a,b,c;
cin>>a;
cin>>b;
cin>>c;
if(a+b>c&&a+c>b&&b+c>a){
if(a==b&&b==c){
cout<<"可构成等边三角形:"<<endl;
}
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a){
if(a==b||b==c||a==c){
cout<<"可构成等腰直角三角形:"<<endl;
}
else cout<<"可构成直角三角形"<<endl;
}
else if(a==b||a==c||b==c){
cout<<"可构成等腰三角形"<<endl;
}
}
else cout<<"不能构成三角形"<<endl;
}