判断一个四边形是否是矩形——面试题

  比较方便的做法是对每个顶点做一次勾股定理,如果满足每个角都是直角,就是矩形

  如果把问题改成判断四个点是否组成正方形的话,就另外判断相邻的边是否相等,若是,则为正方形

  供练习传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1524

  

判断一个四边形是否是矩形——面试题
#include<stdio.h>

#include<math.h>

#include<iostream>

#include<algorithm>

using namespace std;



double x[9],y[9];

double len[9];



double Dis(double x,double y,double x2,double y2){

    return (x-x2)*(x-x2)+(y-y2)*(y-y2);

}



int main()

{

    int t,i,T=0;

    scanf("%d",&t);

    while(t--){

        T++;printf("Case %d:\n",T);

        int i,j;

        for(i=1;i<=4;i++){

            scanf("%lf%lf",&x[i],&y[i]);

        }



        int ok=0;

        for(i=1;i<=4;i++){

            int add=0;

            for(j=1;j<=4;j++){

                if(i==j)continue;

                add++;

                len[add]=Dis(x[i],y[i],x[j],y[j]);

            }

            sort(&len[1],&len[4]);

            if((len[3])==(len[1]+len[2]))ok++;

        }

        if(ok==4)printf("Yes\n");

        else printf("No\n");

        if(t!=0)printf("\n");

    }

    return 0;

}
View Code

 

你可能感兴趣的:(面试题)