急急!!! 输入四组坐标判断是不是组成为矩形 C++

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急急!!! 输入四组坐标判断是不是组成为矩形 C++相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<cmath>
using namespace std;
int main()
int getlength(int,int);
int k=0;
//作为判断矩形的标志
bool fund=true;
int a[][2]=0;
int x[]=0;//存储坐标x
int y[]=0;//存储坐标y
cout<<"four couple of num:"<<endl;

for(int i=0;i<4&&fund==true;i++)


for(int j=0;j<2;j++)

cin>>a[i][j];
if(a[i][j]<=0||a[i][j]>25)

cout<<"这四个坐标围成的图形不是符合条件"<<endl;
return fund=false;


return fund=true;


if(fund)//利用两边的平方和等于一边的平方来判断,用k作为标记



for(int h=0;h<8;h++)
for(int m=0;m<0;m++)
if( m%2==0&&h>4)
x[h]=a[h-4][m];
else if(m%2!=0&&h>4)
y[h]=a[h-4][m];
else if(m%2==0&&h<4)
x[h]=a[h][m];
else
y[h]=a[h][m];
for(int z=0;z<3;z++)

if(getlength(x[z]-x[z+2],y[z]-y[z+2])+getlength(x[z]-x[z+1],y[z]-y[z+1])==getlength(x[z]-x[z+3],y[z]-y[z+3]))
k++;
if(getlength(x[z]-x[z+1],y[z]-y[z+1])+getlength(x[z]-x[z+3],y[z]-y[z+3])==getlength(x[z]-x[z+2],y[z]-y[z+2]))
k++;
if(getlength(x[z]-x[z+2],y[z]-y[z+2])+getlength(x[z]-x[z+3],y[z]-y[z+3])==getlength(x[z]-x[z+1],y[z]-y[z+1]))
k++;




if(k==3)
cout<<"这四个坐标围成的图形是符合条件的矩形"<<endl;

else
cout<<"这四个坐标围成的图形不符合条件"<<endl;
return 0;

int getlength(int m,int n)

int length=m*m+n*n;
return length;


请高手帮我修改一下,使能判断输入的四个坐标是否为矩形呀!与此同时加上注释,吾将感激不尽!

参考技术A #include<iostream>
#include<cmath>
using namespace std;
int getlength(int,int);
int main()

int k=0;
//作为判断矩形的标志
bool fund=true;
int a[4][2]=0;
int x[4]=0;//存储坐标x
int y[4]=0;//存储坐标y
cout<<"four couple of num:"<<endl;

for(int i=0;i<4&&fund==true;i++)


for(int j=0;j<2;j++)

cin>>a[i][j];
if(a[i][j]<=0||a[i][j]>25)
cout<<"这四个坐标围成的图形不是符合条件"<<endl;
fund=false;


fund=true;


if(fund)//利用两边的平方和等于一边的平方来判断,用k作为标记



for(int h=0;h<8;h++)
for(int m=0;m<0;m++)
if( m%2==0&&h>4)
x[h]=a[h-4][m];
else if(m%2!=0&&h>4)
y[h]=a[h-4][m];
else if(m%2==0&&h<4)
x[h]=a[h][m];
else
y[h]=a[h][m];
for(int z=0;z<1;z++)

if(getlength(x[z]-x[z+2],y[z]-y[z+2])+getlength(x[z]-x[z+1],y[z]-y[z+1])==getlength(x[z]-x[z+3],y[z]-y[z+3]))
k++;
if(getlength(x[z]-x[z+1],y[z]-y[z+1])+getlength(x[z]-x[z+3],y[z]-y[z+3])==getlength(x[z]-x[z+2],y[z]-y[z+2]))
k++;
if(getlength(x[z]-x[z+2],y[z]-y[z+2])+getlength(x[z]-x[z+3],y[z]-y[z+3])==getlength(x[z]-x[z+1],y[z]-y[z+1]))
k++;




if(k==3)
cout<<"ok"<<endl;
else
cout<<"no"<<endl;


int getlength(int m,int n)

int length=m*m+n*n;
return length;
参考技术B 我的C++挫的一13 我表示看不懂本回答被提问者采纳

最小包围矩形

题目内容:

给定一组二维坐标,表示直角坐标系内的一个多边形的连续的顶点的坐标序列。计算能包围这个多边形的平行于坐标轴的最小矩形,输出它的左下角和右上角的坐标。

 

输入格式:

第一行是一个正整数n表示顶点的数量,第二行是n组整数,依次表示每个顶点坐标的x和y值。

 

输出格式:

四个整数,依次表示所计算的矩形的左下角的坐标的x、y值和右上角坐标的x、y值。输出最后带有回车换行。

 

输入样例:

5

1 1 1 4 3 7 4 4 4 1

 

输出样例:

1 1 4 7

 1 #include <stdio.h>
 2 
 3 typedef struct _dot {
 4     int x;
 5     int y;
 6 } Dot;
 7 
 8 int main(int argc, char const *argv[])
 9 {
10     Dot left_down, right_up;
11     left_down = right_up = (Dot){0,0};
12 
13     Dot p;
14     int n;
15     scanf("%d", &n);
16 
17     for ( int i = 0; i < n; i++ ) {
18         scanf("%d %d", &p.x, &p.y);
19         if ( left_down.x || left_down.y || right_up.x  || right_up.y ) {    
20             if ( p.x < left_down.x ) {
21                 left_down.x = p.x;
22             } else if ( p.x > right_up.x ) {
23                 right_up.x = p.x;
24             }
25             if ( p.y < left_down.y ) {
26                 left_down.y = p.y;
27             } else if ( p.y > right_up.y ) {
28                 right_up.y = p.y;
29             }
30         } else {
31             left_down = p;
32             right_up = p;
33         }
34     }
35     printf("%d %d %d %d
", left_down.x, left_down.y, right_up.x, right_up.y);
36     return 0;
37 }

 

以上是关于急急!!! 输入四组坐标判断是不是组成为矩形 C++的主要内容,如果未能解决你的问题,请参考以下文章

怎么判断当前坐标是不是在矩形内(外)部

用C 如何判断点是不是在矩形内

C++编程!已知矩形,判断输入的点是不是包含在该矩形内。

如何判断一个点在一个矩形里边,一直点和矩形的坐标点位置。

如何判断一个点在一个矩形里边,已知点和矩形的坐标点位置。

java知道四个点坐标,怎么判断一个点是否在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)