AcWing 666. 三角形类型
原题链接
简单
作者:
noobcoder
,
2020-03-06 18:29:03
,
所有人可见
,
阅读 10215
#include <iostream>
using namespace std;
int main()
{
double a, b, c;
cin >> a >> b >> c;
if (a < b) swap(a, b);
if (a < c) swap(a, c);
if (b < c) swap(b, c);
if (a >= b + c)
cout << "NAO FORMA TRIANGULO" << endl;
else
{
if (a * a == b * b + c * c)
cout << "TRIANGULO RETANGULO" << endl;
if (a * a > b * b + c * c)
cout << "TRIANGULO OBTUSANGULO" << endl;
if (a * a < b * b + c * c)
cout << "TRIANGULO ACUTANGULO" << endl;
if (a == b && a == c)
cout << "TRIANGULO EQUILATERO" << endl;
if ((a == b && a != c && b != c) || (a == c && a != b && c != b)|| (b == c && b != a && c != a))
cout << "TRIANGULO ISOSCELES" << endl;
}
return 0;
}
最后一种情况两种情况即可:a==b&&b!=c || b==c&&a!=b (因为abc已排序)
验证啦
最后一行可写成 else if(a == c || b == c || a == b) cout <<”TRIANGULO ISOSCELES” ; 缩短判断
不可以,当a==b==c时,也就是等边,也会输出这一行,需要判断不等于第三边,但只需要判断其中一个就可以了
if (a == b && a == c) 只要接这个if后面写else if就可以
可以的,我ac了
是吗666我也去试试
不可能出现 a == c的情况 只需else if (a== b || b == c) cout << “”; 即可 这里c是最小边, a为最长边
6666
注意这个else if的作用哦
请问swap是什么意思呢?
两个值互换
不得不说库函数是真好用
最后一个判断可以改为
a==b && a!=c
,这样可以达到同样的作用不可以的,我试了,至少需要两个判断
我的意思是
(a==b && a!=c) || (a==c && a!=b) || (b==c && b!=a)
这样,可以减少不必要的条件,而不是说简单的只用一个判断;或者else if (!(a!=b && a!=c && b!=c)) cout << "TRIANGULO ISOSCELES" << endl;
也可以实现。最后一行if (a!=c && (a==b || b==c))
#include[HTML_REMOVED]
#include[HTML_REMOVED]
using namespace std;
int main()
{
double a,b,c,d;
cin>>a>>b>>c;
d = a+b+c;
a = max(a,max(b,c));
c = min(a,min(b,c));
b = d-(a+c);
if(a >= b+c) cout << “NAO FORMA TRIANGULO”<[HTML_REMOVED]bb+cc) cout << “TRIANGULO OBTUSANGULO”<<endl;
if(aa<bb+c*c) cout << “TRIANGULO ACUTANGULO”<<endl;
if(a==b&&b==c) cout << “TRIANGULO EQUILATERO”<<endl;
else if(a==b||b==c||a==c) cout << “TRIANGULO ISOSCELES”<<endl;
}
}
厉害的奥
太厉害了
好工整的代码啊,我哭了
可以用sort函数嘛?求解(嘤嘤嘤)
swap只写前两行就行,第三行没必要
为啥没必要
第三行必须要有,b和c的关系没定,有了第三行才有b>c
确实没必要
明明必要 自己去假设 1 2 3
谢谢 else「」第一次用
超纲了超纲了 /狗头
没有狗头hhh’
’‘’
真不绰
‘’‘