输入三角形的三条边,判断能否构成三角形。若能,则指出是直角三角形,锐角三角形还是钝角三角形。c语言
输入三角形的三条边,判断能否构成三角形。若能,则指出是直角三角形,锐角三角形还是钝角三角形。c语言设计...
输入三角形的三条边,判断能否构成三角形。若能,则指出是直角三角形,锐角三角形还是钝角三角形。c语言设计
展开
2个回答
2016-04-01
展开全部
#include <stdio.h>
#indlude <math.h>
#define ACUTE_ANGEL 1 /* 锐角 */
#define RIGHT_ANGEL 2 /* 直角 */
#define OBTUSE_ANGEL 3 /* 钝角 */
bool istriangle(int a, int b, int c)
{
bool r = false;
if ((a + b) < c
&& (a + c) > b
&& (b + c) > a)
{
r = true;
}
return r;
}
int gettriangletype(int a, int b, int c)
{
int type;
int max_long, edge_m, edge_k;
if (a > c && a > b)
{
max_long = a;
edge_m = b;
edge_k = c;
}
else if (b > a && b > c)
{
max_long = b;
edge_m = a;
edge_k = c;
}
else
{
max_long = c;
edge_m = a;
edge_k = b;
}
if (pow(max_long, 2) == pow(edge_m, 2) + pow(edge_k, 2))
{
type = RIGHT_ANGEL;
}
else if (pow(max_long, 2) > pow(edge_m, 2) + pow(edge_k, 2))
{
type = OBTUSE_ANGEL;
}
else
{
type = ACUTE_ANGEL;
}
return type;
}
int main()
{
int a, b, c;
int type;
printf("依次输入三角形三边长度");
scanf("%d %d %d", &a, &b, &c);
if (!istriangle(a, b, c))
{
printf("不是三角形\n");
return 0;
}
else
{
printf("是三角形\n");
}
type = gettriangletype(a, b, c);
if (type == RIGHT_ANGEL)
{
printf("是直角\n");
}
else if (type == OBTUSE_ANGEL)
{
printf("是钝角\n");
}
else
{
printf("是锐角\n");
}
return 0;
}
这是最笨的方法,还可以通过三角函数来判断,不过都忘光了
展开全部
#include
#include
void main()
{
float a,b,c,s,area;
printf("please input a,b,c\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&c+a>b)
{
s=(a+b+c)/2;
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
if(a==b&&a==c&&b==c)
printf("equilateral tring\n");
else if(a==b||a==c||b==c)
printf("isosceles tring\n");
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
printf("right -angled tring\n");
}
else
printf("not tring\n");
}
#include
void main()
{
float a,b,c,s,area;
printf("please input a,b,c\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&c+a>b)
{
s=(a+b+c)/2;
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
if(a==b&&a==c&&b==c)
printf("equilateral tring\n");
else if(a==b||a==c||b==c)
printf("isosceles tring\n");
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
printf("right -angled tring\n");
}
else
printf("not tring\n");
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询