C语言,输入三个数判断能否构成直角三角形,我这里一堆错误,该怎么修正呢?求大佬指教

如题所述

if(a>b&&b>=c||a>c&&c>=b)
printf(b*b+c*c==a*a?"能构成直角三角形":"不能构成直角三角形");
else if(b>a&&a>=c||b>c&&c>=a)
printf(a*a+c*c==b*b?"能构成直角三角形":"不能构成直角三角形");
else
printf(b*b+a*a==c*c?"能构成直角三角形":"不能构成直角三角形");追问

不能写a>b>c吗。

追答

a>b>c即(a>b)>c

子表达式a>b的值不是1(真)就是0(假)
于是就成了1>c或者0>c了
显然和你想要表达的b∈(a,c),完全不同

追问

那请问为什么if那里要≥?,我除了那里都跟你一样,然后现在输3 4 5,显示不能构成直角三角形

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-02
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if(a+b<c&&a+c<b&&b+c<a) {
if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)

printf("能构成直角三角形")
else

printf("不能构成直角三角形")
}
else{
printf("不能构成三角形");
}
第2个回答  2020-10-22
要用英文引号
相似回答