C语言题目 输入a,b,c三条边,判断它们能否构成三角形.若能,则指出是何种三角形.

 我来答
百度网友fc027fc
推荐于2018-02-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:753万
展开全部
#include <stdio.h>
int main()
{
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
if(a==b||a==c||b==c)

if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)
{
printf("等腰直角三角形\n");
}
else 
{
     if(a == b && b== c && a == c)
     {
printf("等边三角形\n");
     }
     else
     {
printf("等腰三角形\n");
     }
}
}
else
{
if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)
{
printf("直角三角形\n");
}
else 
{
printf("一般三角形\n");
}
}
}
else printf("不能构成三角形\n");
        return 0;
}
旺盛又稳重丶小熊猫v
2014-11-15
知道答主
回答量:31
采纳率:0%
帮助的人:18.4万
展开全部
1.先给三条边排序,判断能否构成三角形,也便于找到最大角(大边对大角);
2.用余弦定理 cosA=(b*b+c*c-a*a)/2*b*c;
#include<stdio.h>
#include<math.h>
#define pai 3.1415926
int main()
{
int a,b,c;
double theta,temp;
printf("从小到大输入三条非负整数边: a,b,c \n");
scanf("%d%d%d",&a,&b,&c);
if(0==a*a+b*b-c*c)
{
printf("直角三角形\n");
return 0;
}
temp=(double)(a*a+b*b-c*c)/(2*a*b);
theta=acos(temp);
theta=(180*theta)/pai;

if(theta>90&&theta<180) printf("钝角三角形\n");
else if(theta>0&&theta<90) printf("锐角三角形\n");
else printf("输入错误\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仙戈雅3n
2014-11-15 · TA获得超过5789个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:869万
展开全部
用余弦定理就可以解决了,比如题目仅仅知道三条边,而不知道三内角中的任意一角可以采取余弦定理分别求出各内角。
假设在三角形ABC中,设AB=c,BC=a,CA=b,且a、b、c所对的内角分别是A、B、C,则有:

cosA=[b²+c²-a²]/(2bc) // 求角A的度数
cosB=[a²+c²-b²]/(2ac) // 求角B的度数
cosC=[a²+b²-c²]/(2ab) // 求角C的度数

根据勾股定理:三角形任意两边的平方和等于另一边的平方,则称该三角形为直角三角形。

钝角三角形大于90度小于180度
锐角三角形大于45度小于90度
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式