如何判断三角形是锐角,钝角,还是直角三角形

输入三条边,用C
余弦定理 没说a^2>b^2+c^2 就是顿角三角形啊?
余弦定理 也没说b^2+c^2-a^2>0就是什么三角形啊?

用余弦定理呀,不过效率可能不是很高,但程序写起来还是很容易的;
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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-29
用勾股定理多简单啊。最长边的平方与另外两边的平方和比较。我大一时C语言考试就用的它,老师说没问题。
#include <stdio.h>
#include <conio.h>
main()
{
float a,b,c,t;
start:clrscr();
printf("input a=");scanf("%f",&a);
printf("input b=");scanf("%f",&b);
printf("input c=");scanf("%f",&c);
if((b>a)&&(b>c)){t=b;b=a;a=t;}
else if((c>a)&&(c>b)){t=c;c=a;a=t;}
if(b+c<=a)
{
printf("a b c can't build up a triangle\n");
printf("press any key to reput.");getch();
goto start;
}
a=a*a;b=b*b;c=c*c;
if(a==b+c)printf("squarely triangle");
else if(a>b+c)printf("obtuse triangle");
else if(a<b+c)printf("acute triangle");
getch();

}
第2个回答  2008-03-29
用三条边的长短关系判断,不过我是学c++的,语言怎么写不知道
相似回答