&&是逻辑与,只有他左右两个表达式都为真,整个表达式才为真,在他的左表达式为假的时候右表达式是不判断的,
||是逻辑或,只要他左右的表达式有一个为真,整个表达式就为真,在他的左表达式为真的时候右表达式是不判断的。
"&&"表示"与",
意思是条件必须同时成立
"||"
表示"或",
意思是条件有一个成立即可.
if((a*a+b*b>c*c)&&(b*b+c*c>a*a)&&(c*c+a*a>b*b))这个是判断锐角三角形的条件,你只要学过数学就应该知道锐角三角形的成立条件是:任意两边长度的平方和大于第三边长度的平方。
所以要用"&&"而不是"||"。
你scanf的时候
int
a
scanf("%d",&a)
这样是输入了一个整数
double
a
scanf("%d",&a)
这个时候你输入10.55,结果a的值会是10,因为是按照整数型读取的。小数点就被切掉了,所以这里必须用
scanf("%lf",&a)
因为if((a*a+b*b>c*c)&&(b*b+c*c>a*a)&&(c*c+a*a>b*b))这三个条件必须同时满足(也就是逻辑与)的条件下才是锐角三角形。
||的话只要一个条件满足就可以。