#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;
}
这是最笨的方法,还可以通过三角函数来判断,不过都忘光了