c++输入三角形的三条边,判别能否构成三角形,再判断是不是等边三角形

输出了”不能构成三角形“,还会输出”是一般三角形“,怎么改... 输出了”不能构成三角形“,还会输出”是一般三角形“,怎么改 展开
 我来答
changyiduU4Q
高粉答主

2019-08-04 · 关注我不会让你失望
知道答主
回答量:264
采纳率:100%
帮助的人:8.6万
展开全部

代码如下:

#include <math.h>
#define EPS 1e-1
int main()
{

float a,b,c;

int flag=1;printf("Input a,b,c:\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c && b+c>a && a+c>b)
{
if(fabs(a-b)<=EPS && fabs(b-c)<=EPS && fabs(c-a)<=EPS)
{
printf("\t等边三角形\n");
flag=0;
}
else if(fabs(a-b)<=EPS || fabs(b-c)<=EPS || fabs(c-a)<=EPS)
{
printf("\t等腰角形\n");
flag=0;
}
if(fabs(a*a+b*b-c*c)<=EPS || fabs(a*a+c*c-b*b)<=EPS || fabs(c*c+b*b-a*a)<=EPS)
{
printf("\t直角三角形\n");
flag=0;
}
if(flag)
{
printf("\t一般三角形\n");
}
}
else
{
printf("\t不是三角形\n");
}
return 0;
}

扩展资料

判定条件

1、不等边三角形;不等边三角形,数学定义,指的是三条边都不相等的三角形叫不等边三角形。

2、等腰三角形;等腰三角形(isosceles triangle),指两边相等的三角形,相等的两个边称为这个三角形的腰。

等腰三角形中,相等的两条边称为这个三角形的腰,另一边叫做底边。两腰的夹角叫做顶角,腰和底边的夹角叫做底角。

等腰三角形的两个底角度数相等(简写成“等边对等角”)。等腰三角形的顶角的平分线,底边上的中线,底边上的高重合(简写成“等腰三角形的三线合一性质”)。等腰三角形的两底角的平分线相等(两条腰上的中线相等,两条腰上的高相等)。

等腰三角形底边上的垂直平分线到两条腰的距离相等。等腰三角形的一腰上的高与底边的夹角等于顶角的一半。

等腰三角形底边上任意一点到两腰距离之和等于一腰上的高(需用等面积法证明)。等腰三角形是轴对称图形,(不是等边三角形的情况下)只有一条对称轴,顶角平分线所在的直线是它的对称轴,等边三角形有三条对称轴。

等腰三角形中腰的平方等于高的平方加底的一半的平方。等腰三角形的腰与它的高的关系,直接的关系是:腰大于高。间接的关系是:腰的平方等于高的平方加底的一半的平方。

3、等边三角形。等边三角形(又称正三角形),为三边相等的三角形,其三个内角相等,均为60°,它是锐角三角形的一种。等边三角形也是最稳定的结构。等边三角形是特殊的等腰三角形,所以等边三角形拥有等腰三角形的一切性质。

参考资料来源:百度百科-三角形

迷烽乐云
推荐于2017-09-19 · 超过21用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:32万
展开全部
if((a+b)>c&&(a+c>b)&&(b+c)>a){
    cout<<"能构成三角形\n";
    if(a==b&&b==c)
        cout<<"是等边三角形\n";
    else if(a==b||a==c||b==c)
        cout<<"是等腰三角形\n";
    else 
        cout<<"是一般三角形\n";
}
else 
    cout<<"不能构成三角形\n";

IF和最近的ELSE配对,所以楼主你的代码是有两个IF-ELSE配对的,所以有两结果咯

把等边等腰一般三角形的分别放到“能构成三角形”的IF语句中去

而且应该先判定是否为等边,再判定是否为等腰

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玩转小剧场
2019-05-17 · TA获得超过3807个赞
知道大有可为答主
回答量:3109
采纳率:27%
帮助的人:165万
展开全部
1234567891011if((a+b)>c&&(a+c>b)&&(b+c)>a){ cout<<"能构成三角形\n"; if(a==b&&b==c) cout<<"是等边三角形\n"; else if(a==b||a==c||b==c) cout<<"是等腰三角形\n"; else cout<<"是一般三角形\n";}else cout<<"不能构成三角形\n";
IF和最近的ELSE配对,所以楼主你的代码是有两个IF-ELSE配对的,所以有两结果咯
把等边等腰一般三角形的分别放到“能构成三角形”的IF语句中去
而且应该先判定是否为等边,再判定是否为等腰
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-26
展开全部

if逻辑有问题

#include <iostream>
#include <math.h>
using std::cin;
using std::cout;
using std::endl;

int main(void)
{
double a,b,c;
cin>>a>>b>>c;
if (a+b>c&&fabs(a-b)<c)
{
cout<<"能构成三角形"<<endl;
if (a==b&&a==c)
cout<<"是等边三角形"<<endl;
else if (a==b||a==c||b==c)
cout<<"是等腰三角形"<<endl;
else cout<<"是不等边不等腰三角形"<<endl;
}
else cout<<"不能构成三角形"<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式