答案: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");
}
上一个:在C语言编程中出现undeclared indentifer怎么办
下一个:C语言开头不同的问题