#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() { int t; int a[3]; while(~scanf("%d",&t)) { for(int i=1;i<=t;i++) { scanf("%d%d%d",&a[0],&a[1],&a[2]); sort(a,a+3); if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2]) { printf("Case %d: Right triangle\n",i); continue; } if(a[0]*a[0]+a[1]*a[1]<a[2]*a[2]) { printf("Case %d: Obtuse triangle\n",i); continue; } if(a[0]*a[0]+a[1]*a[1]>a[2]*a[2]) { printf("Case %d: Acute triangle\n",i); continue; } } } return 0; }
只需判断锐角或钝角或直角;
设三角形最长边为c 其余两边分别为a b 则
若a^2+b^2=c^2 直角三角形(勾股定理逆定理)
若a^2+b^2>c^2 锐角三角形
若a^2+b^2<c^2 钝角三角形
设1中三边对应的角分别为A、B、C 则
若A=90度 直角三角形
若A>90度 钝角三角形
若A<90度且A为最大角 锐角三角形
若有a=b或(a-b)(b-c)(c-a)=0, 则△ABC为等腰三角形
若有(a-b)2+(b-c)2+(c-a)2=0, 则△ABC为等边三角形
若有(a2-b2)( a2+b2-c2)=0, 则△ABC为等腰三角形或直角三角形
若有a=b且 a2+b2=c2, 则△ABC为等腰直角三角形
若有sin2A+sin2B=sin2C或sinA=sinB, 则△ABC为直角三角形或等腰三角形
若有cosA>0,或tanA>0,(其中∠A为△ABC中的最大角) 则△ABC为锐角三角形
若有cosA<0,或tanA<0,(其中∠A为△ABC中的最大角), 则△ABC为钝角三角形
若有两个(或三个)同名三角函数值相等(如tanA=tanB, 则△ABC为等腰三角形(或等边三角形)
若有特殊的三角函数值,则按特殊角来判断,如cosA=,b=c,则△ABC为等边三角形
时间: 2024-10-10 00:42:22