任务描述
输入三条线段的长度(整型),根据是否能组成三角形,输出以下结果之一:锐角三角形、直角三解形、钝角三角形、不能构成三角形。
输入格式:
三个整数
输出格式:
锐角三角形输出:Acute triangle
直角三解形输出:Right triangle
钝角三角形输出:Obtuse triangle
不能构成三角形输出:Not triangle
输入样例:
2 3 3
输出样例:
Acute triangle
输入样例:
5 4 3
输出样例:
Right triangle
输入样例:
6 4 3
输出样例:
Obtuse triangle
输入样例:
8 4 3
输出样例:
Not triangle
#include
int main() {
int a, b, c, t;
scanf("%d%d%d", &a, &b, &c);
if (a > b) {
t = a;
a = b;
b = t;
}
if (a > c) {
t = a;
a = c;
c = t;
}
if (b > c) {
t = b;
b = c;
c = t;
}
int a>b>c;
if (b+c > a && a - b < c) {
if (b * b + c * c == a * a) {
printf("Right triangle");
}
else if (b * b + c * c > a * a) {
printf("Obtuse triangle");
}
else if (b * b + c * c < a * a) {
printf("Acute triangle");
}
} else {
printf("Not triangle");
}
return 0;
}
int a>b>c; 这行想干啥?
b+c > a && a - b < c这两个条件是一回事啊
三个if交换后,a是最小值,c是最大值啊,你写反了吧。将if条件从>改为小于,保证a是最大值,才符合你下面代码逻辑
int main() {
int a, b, c, t;
scanf("%d%d%d", &a, &b, &c);
if (a < b) {
t = a;
a = b;
b = t;
}
if (a < c) {
t = a;
a = c;
c = t;
}
if (b < c) {
t = b;
b = c;
c = t;
}
if (b+c > a) {
if (b * b + c * c == a * a) {
printf("Right triangle");
}
else if (b * b + c * c > a * a) {
printf("Acute triangle");
}
else if (b * b + c * c < a * a) {
printf("Obtuse triangle");
}
} else {
printf("Not triangle");
}
return 0;
}