c语言从键盘任意输入三个正数作为三角形的边长,编写代码判断是否能组成三角形,
(等边,等腰,直角,等腰直角,还是一般三角形)?如果可以组成三角形,是何种类型的三角形【提示】判断浮点数或双精度相等,可用差值绝对值法,例如判断a和b相等,fabs(a-...
(等边,等腰,直角,等腰直角,还是一般三角形)?
如果可以组成三角形,是何种类型的三角形【提示】判断浮点数或双精度相等,可用差值绝对值法,例如判断a和b相等,fabs(a-b)<=1e-2 展开
如果可以组成三角形,是何种类型的三角形【提示】判断浮点数或双精度相等,可用差值绝对值法,例如判断a和b相等,fabs(a-b)<=1e-2 展开
2个回答
展开全部
一、数学定理。
判断三边是否可以组成三角形,数学定理为,任意两边和必须大于第三边。
二、流程。
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;
}
展开全部
#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");
}
#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");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询