给你三个点的坐标(X1,Y1)、(X2,Y2)、(X3,Y3),问这三点能否构成三角形总共有T(T
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/10 05:09:18
![给你三个点的坐标(X1,Y1)、(X2,Y2)、(X3,Y3),问这三点能否构成三角形总共有T(T](/uploads/image/z/5907565-37-5.jpg?t=%E7%BB%99%E4%BD%A0%E4%B8%89%E4%B8%AA%E7%82%B9%E7%9A%84%E5%9D%90%E6%A0%87%EF%BC%88X1%2CY1%EF%BC%89%E3%80%81%EF%BC%88X2%2CY2%EF%BC%89%E3%80%81%EF%BC%88X3%2CY3%EF%BC%89%2C%E9%97%AE%E8%BF%99%E4%B8%89%E7%82%B9%E8%83%BD%E5%90%A6%E6%9E%84%E6%88%90%E4%B8%89%E8%A7%92%E5%BD%A2%E6%80%BB%E5%85%B1%E6%9C%89T%28T)
给你三个点的坐标(X1,Y1)、(X2,Y2)、(X3,Y3),问这三点能否构成三角形总共有T(T
给你三个点的坐标(X1,Y1)、(X2,Y2)、(X3,Y3),问这三点能否构成三角形
总共有T(T<=2000)组测试数据,在第一行中给出.接下来有T个模块,每个模块有六个整数X1,Y1,X2,Y2,X3,Y3(绝对值不超过1000).
输出
输出结果共有T行,每行输出Yes(表示能构成)或No(表示不能构成).
样例输入
2
0 0
1 1
0 1
0 0
1 1
2 2
样例输出
Yes
No
给你三个点的坐标(X1,Y1)、(X2,Y2)、(X3,Y3),问这三点能否构成三角形总共有T(T
#include
#include
int main()
{
\x09int *x1,*y1,*x2,*y2,*x3,*y3,T,i;
\x09
\x09scanf("%d",&T);
\x09x1=(int *)malloc(sizeof(int)*T);
\x09y1=(int *)malloc(sizeof(int)*T);
\x09x2=(int *)malloc(sizeof(int)*T);
\x09y2=(int *)malloc(sizeof(int)*T);
\x09x3=(int *)malloc(sizeof(int)*T);
\x09y3=(int *)malloc(sizeof(int)*T);
\x09for(i=0;i
\x09\x09scanf("%d%d",&x1[i],&y1[i]);
\x09\x09scanf("%d%d",&x2[i],&y2[i]);
\x09\x09scanf("%d%d",&x3[i],&y3[i]);
\x09}
\x09for(i=0;i
\x09\x09if((y2[i]-y1[i])*(x3[i]-x2[i])==(y3[i]-y2[i])*(x2[i]-x1[i]))
\x09\x09{
\x09\x09\x09printf("No\n");
\x09\x09}
\x09\x09else
\x09\x09{
\x09\x09\x09printf("Yes\n");
\x09\x09}
\x09}
\x09free(x1);
\x09free(y1);
\x09free(x2);
\x09free(y2);
\x09free(x3);
\x09free(y3);
}
#include
#include
#include
#include
using namespace std;
int main()
{
std::vector
int n = ...
全部展开
#include
#include
#include
#include
using namespace std;
int main()
{
std::vector
int n = 0;
int counts = 0;
do
{
cout << "please input n(0
} while (n <=0 || n>2000);
for (int i = 0; i < n; i++)
{
cout << "请输入第" << i+1 << "组数据" << endl;
for (int j = 0; j < 3; j++)
{
double x, y;
cin >> x >> y;
vt.push_back(make_pair(x, y));
}
}
for (int i = 0; i < vt.size(); i+=3)
{
double edgeAB = sqrt(pow(vt[i].first - vt[i + 1].first, 2) + pow(vt[i].second - vt[i + 1].second, 2));
double edgeBC = sqrt(pow(vt[i].first - vt[i + 2].first, 2) + pow(vt[i].second - vt[i + 2].second, 2));
double edgeAC = sqrt(pow(vt[i+1].first - vt[i + 2].first, 2) + pow(vt[i+1].second - vt[i + 2].second, 2));
if (edgeAB + edgeBC > edgeAC
&& edgeAB + edgeAC > edgeBC
&& edgeAC + edgeBC > edgeAB )
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
return 0;
}
收起