c语言调用函数rectan输入三角形边长判断该三角形是什么类型三角形

2024-12-15 04:30:03
推荐回答(2个)
回答1:

void rectan(){
double a,b,c, square;
double tmp;
char max;
scanf("%lf%lf%lf",&a,&b,&c);
if( a == b || b==c || a ==c){//等腰三角形一定为锐角(包含等边)
printf("锐角三角形\n");
return;
}
//将角C选为最大角,若输入不是此交换使C最大
max = a>b?(tmp = a,'a'):(tmp = b,'b');
max = tmp>c?max:(tmp = c,'c');
if(max != 'c'){
tmp = a;
a = c;
c = tmp;
}

//两锐角所对的边的平方和
square = a*a + b*b;
//由余弦定理:cosC = (a*a + b*b - c*c)/(2ab) , 判断最大角C的正负号
//就是判断 a*a+b*b - c*c的正负号
if( c*c == square)//相等是直角
printf("直角三角形\n");
else if(c*c < square)//相减为正数是锐角
printf("锐角三角形\n");
else//相减为负数为钝角
printf("锐角三角形\n");
}

回答2: