B2050 三角形判断
Gunpowder_OI · · 个人记录
众所周知:
如果在给定的三条线段中,任意两条线段长度之和均大于第三条线段的长度,那么这三条线段能构成一个三角形。
在这里,令三条线段长度分别为
很显然,
怎么求出
if (a > b){
tmp = b;
b = a;
a = tmp;
}
if (a > c){
tmp = c;
c = a;
a = tmp;
}
if (b > c){
tmp = c;
c = b;
b = tmp;
}
太繁琐了!
可以发现代码十分的复杂。事实上, tmp 的功能可以用 swap() 函数代替:
if (a > b)swap (a, b);
if (a > c)swap (a, c);
if (b > c)swap (b, c);
在这里, swap() 函数的功能相当于将 a 和 b 两个变量在电脑中存储的地址调换位置。
还是好麻烦啊!
三个变量的代码看似简洁,但如果变量是
if (a > b)swap (a, b);
if (a > c)swap (a, c);
if (a > d)swap (a, d);
if (a > e)swap (a, e);
……………………
这时就要请出我们大名鼎鼎的 sort() 函数了!
第一步,定义一个大小为
int t[3];
第二步,把
cin >> t[0] >> t[1] >> [t2];
//这里相当于cin>>a>>b>>c;t[0]=a,t[1]=b,t[2]=c;
第三步,调用 sort() 函数。
sort (t, t + 3);
这里的
最后热心提醒:sort() 要开万能头!!!
#include <bits/stdc++.h>
using namespace std;
int main (){
int t[3];
cin >> t[0] >> t[1] >> t[2];
sort (t, t + 3);
if (t[0] + t[1] > t[2])cout << 1;
else cout << 0;
return 0;
}
蒟蒻的第一篇氵题题解,求管理过审!谢谢qwq