写一道红题水一点经验,但是却WA了两个点
看一下好像没有什么问题
#include <iostream>
using namespace std;
int l1, l2, l3;
int main(){
cin >> l1 >> l2 >> l3;
cout << (l1+l2 > l3) && (l2+l3 > l1) && (l1+l3 > l2);
}
但C++中,流运算符<<的优先级要比逻辑与&&的优先级高,所以,上面的代码执行流程其实是这样子
#include <iostream>
using namespace std;
int l1, l2, l3;
int main(){
cin >> l1 >> l2 >> l3;
(cout << (l1+l2 > l3)) && (l2+l3 > l1) && (l1+l3 > l2);
cout << 1 && 0 && 0;
(cout << 1) && 0 && 0;
}
所以加上括号就AC啦
#include <iostream>
using namespace std;
int l1, l2, l3;
int main(){
cin >> l1 >> l2 >> l3;
cout << ((l1+l2 > l3) && (l2+l3 > l1) && (l1+l3 > l2));
}