您的位置:首页 > 其它

判断正方形

2016-03-16 14:53 155 查看
随机输入四个点坐标,判断是否为正方形

编写一个程序,输入为平面上的四个点A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4)编写程序判断这四个点能不能组成一个正方形,可以只说思路,不用写代码.

#include <iostream>

using namespace std;

int main()
{
int point[4][2] = {0};//存储点坐标
int dis[10] = {0};      //存储距离
int i,j,D;
for(i = 0;i < 4;i++)    //输入点坐标
{
for(j = 0;j < 2;j++)
{
cin>>point[i][j];
}
}
int size = 0;           //边长不同的边的数目,初始化为0
for(i = 0;i < 3;i++)
{
for(j = i + 1;j < 4;j++)
{
D = (point[i][0] - point[j][0])*(point[i][0] - point[j][0]) + (point[i][1] - point[j][1])*(point[i][1] - point[j][1]);//存储的是边的长度的平方
if(D == dis[0]||D == dis[1])    //如果该边长已存在,则跳出本次循环,执行下一次循环
{
continue;
}
else                            //若果没有出现,则存储
{
dis[size++] = D;
}
}
}
if(size > 2)        //如果存在三条以上的边则不是正方形
{
cout<<"No"<<endl;
}
else if(size == 2)  //如果只存在两条边
{
if(dis[0] + dis[0] == dis[1] ||dis[1] + dis[1] == dis[0])//正方形的边的平方的和等于对角线的平方,则为正方形
{
cout<<"Yes"<<endl;
}
else
{
cout<<"no"<<endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: