c语言从键盘任意输入三个正数作为三角形的边长,编写代码判断是否能组成三角形,

(等边,等腰,直角,等腰直角,还是一般三角形)?如果可以组成三角形,是何种类型的三角形【提示】判断浮点数或双精度相等,可用差值绝对值法,例如判断a和b相等,fabs(a-... (等边,等腰,直角,等腰直角,还是一般三角形)?
如果可以组成三角形,是何种类型的三角形【提示】判断浮点数或双精度相等,可用差值绝对值法,例如判断a和b相等,fabs(a-b)<=1e-2
展开
 我来答
风若远去何人留
2017-04-28 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450118
专业C/C++软件开发

向TA提问 私信TA
展开全部

一、数学定理。

判断三边是否可以组成三角形,数学定理为,任意两边和必须大于第三边。

二、流程。

1、输入三条边长度;

2、 由于题目限制输入为三个正数,所以无需判断输入的合法性,直接对任意两边相加,判断是否大于第三边即可;

3、如果三次判断均成立,则可以组成三角形,否则不能;

4、输出结果。

三、参考代码:

#include <stdio.h>
int main()
{
    double a,b,c;//任意正数,没有限定为整数,所以用double存储。
    scanf("%lf%lf%lf",&a,&b,&c);//输入三条边。
    if(a+b>c&&a+c>b&&b+c>a)//根据定理进行判断。
        printf("可以组成三角形\n");//输出结果
    else
        printf("无法组成三角形\n");
        
    return 0;
}
a290698097
2014-03-11
知道答主
回答量:17
采纳率:0%
帮助的人:13.3万
展开全部
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,max;
printf("请分别输入三角形的三边长:");
scanf("%f%f%f",&a,&b,&c);
max=a;
if(b>max)
max=b;
if(c>max)
max=c;
if(a+b>c&&b+c>a&&a+c>b)
{
if(a==b&&b==c&&a==c)
printf("等边三角形\n");
else if(a!=b&&a!=c&&b!=c&&(max*max==a*a+b*b||a*a+c*c||b*b+c*c))
printf("直角三角形\n");
else if(a==b||a==c||b==c&&(max*max!=a*a+b*b||a*a+c*c||b*b+c*c))
printf("等腰三角形\n");
else if(a==b||a==c||b==c&&(max*max==a*a+b*b||a*a+c*c||b*b+c*c))
printf("等腰直角三角形\n");
else
printf("一般三角形\n");
}
else
printf("不能构成三角形\n");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式