#116. 三角形形状(仅用于个人记录)
题目描述
读入三角形的三条边,进行如下的判断:
如果输入值不合法,输出 illegal triangle;
如果输入值合法,两条较短边的平方和大于最长边的平方,则输出 acute triangle,表示锐角三角形;
如果输入值合法,两条较短边的平方和等于最长边的平方,则输出 right triangle,表示直角三角形;
如果输入值合法,两条较短边的平方和小于最长边的平方,则输出 obtuse triangle,表示钝角三角形。
注意:如果两条短边的和大于第三边,那么这个三角形就是合法的
输入
输入三个整数 a,b,c (1≤a,b,c≤100),表示三角形的三条边。
输出
根据情况输出。
#define func1(a, b) a > b ? a:b
#include<stdio.h>
#include"math.h"
int main(){
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
int m = func1((func1(a, b)), c);
if(m == a){
if(m < b + c){
if(pow(m, 2) < pow(b, 2) + pow(c, 2)){
printf("acute triangle");
}else if(pow(m, 2) == pow(b, 2) + pow(c, 2)){
printf("right triangle");
}else{
printf("obtuse triangle");
}
}else{
printf("illegal triangle");
}
}else if(m == b){
if(m < a + c){
if(pow(m, 2) < pow(a, 2) + pow(c, 2)){
printf("acute triangle");
}else if(pow(m, 2) == pow(a, 2) + pow(c, 2)){
printf("right triangle");
}else{
printf("obtuse triangle");
}
}else{
printf("illegal triangle");
}
}else{
if(m < a + b){
if(pow(m, 2) < pow(a, 2) + pow(b, 2)){
printf("acute triangle");
}else if(pow(m, 2) == pow(a, 2) + pow(b, 2)){
printf("right triangle");
}else{
printf("obtuse triangle");
}
}else{
printf("illegal triangle");
}
}
return 0;
}