?? scrambled polygon.cpp
字號:
#include<iostream>
#include<iomanip>
using namespace std;
class a
{
public:
double x,y;
double slopes;
};
int status[4]={0,0,0,0};
int compare(const void*m,const void *n)
{
if(((a*)m)->slopes>((a*)n)->slopes)return 1;
if(((a*)m)->slopes<((a*)n)->slopes)return -1;
if(((a*)m)->slopes==((a*)n)->slopes)return 0;
}
int main()
{
int i,j,start;
a quadrants[4][60];
double x,y;
cin>>x>>y;
while(cin>>x>>y)
{
if(x>0&&y>0)
{
quadrants[0][status[0]].x=x;
quadrants[0][status[0]].y=y;
quadrants[0][status[0]].slopes=y/x;
status[0]++;
}
if(x<0&&y>0)
{
quadrants[1][status[1]].x=x;
quadrants[1][status[1]].y=y;
quadrants[1][status[1]].slopes=y/x;
status[1]++;
}
if(x<0&&y<0)
{
quadrants[2][status[2]].x=x;
quadrants[2][status[2]].y=y;
quadrants[2][status[2]].slopes=y/x;
status[2]++;
}
if(x>0&&y<0)
{
quadrants[3][status[3]].x=x;
quadrants[3][status[3]].y=y;
quadrants[3][status[3]].slopes=y/x;
status[3]++;
}
}
for(i=0;i<4;i++)
if(status[i]!=0)
qsort(quadrants[i],status[i],sizeof(quadrants[i][0]),compare);
for(i=0;i<4;i++)
if(status[i]==0)
break;
for(j=i;;j++)
if(status[j%4]!=0)
break;
start=j%4;
cout<<"("<<0<<","<<0<<")"<<endl;
for(i=start;;i++)
{
if(status[i%4]==0)
break;
if(status[i%4]!=0)
{
for(j=0;j<status[i%4];j++)
cout<<"("<<quadrants[i%4][j].x<<","<<quadrants[i%4][j].y<<")"<<endl;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -