正方形
2015-08-15 21:25
363 查看
正方形
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给出四个点,判断这四个点能否构成一个正方形。输入
输入的第一行包含一个整数T(T≤30)表示数据组数,每组数据只有一行,包括8个整数x1, y1, x2, y2,x3,y3,x4,y4(数据均在-1000,1000 之间)以逆时针顺序给出四个点的坐标。输出
每组数据输出一行,如果是正方形,则输出: YES, 否则,输出:NO。示例输入
20 0 1 0 1 1 0 1-1 0 0 -2 1 0 2 0
示例输出
YESNO
提示
来源
示例程序
view plaincopyprint如果您复制代码时出现行号,请点击左边的“viewplain”后再复制
#include<stdio.h>
#include<math.h>
int main()
{
int T;
int x1, x2, x3, x4, y1, y2, y3, y4;
scanf("%d", &T);
while(T--)
{
double a, b, c, d;
scanf("%d%d%d%d%d%d%d%d", &x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4);
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
b=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
c=sqrt((x4-x3)*(x4-x3)+(y4-y3)*(y4-y3));
d=sqrt((x1-x4)*(x1-x4)+(y1-y4)*(y1-y4));
if(a==b &&b==c && c==d)
{
double e=(x2-x4)*(x2-x4)+(y2-y4)*(y2-y4);
//if(a*a+d*d==e*e)
if((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(x1-x4)*(x1-x4)+(y1-y4)*(y1-y4)==e)
printf("YES\n");
else
printf("NO\n");
}
else
printf("NO\n");
}
return 0;
}
相关文章推荐
- 从上往下打印二叉树(算法)
- MyBatis基础
- C++ Primer 第(4-5)章一句话知识点总结
- 10.1 Qemu的网络管理
- 查看Oracle中是否有锁表的sql
- [Linux 运维 -- 存储] /proc/diskstats详解
- 页面化操作数据库
- stm32 IAP + app的实现
- 博客迁移-爱T-blog
- hdu5387Clock
- 汇编小程序
- junit基础学习之-测试service层(3)
- MongoDB Helper的简单封装
- hdu 1130 How Many Trees?(卡特兰数,大数的乘法与除法)
- UVa10986_Sending email(最短)(白皮书图论的话题)
- Python3 字符串
- 2440 ads启动代码的中断处理流程分析
- OMS中的AGENT变化如何处理
- vim文本编辑器
- 笔试面试错题集2