本着多谢思路的原则,还是把题解及代码记录下啦吧。
用到的atan2函数,atan2(y,x)应该就是与x轴的夹角弧度了,网太渣,没查。
#include<algorithm> #include<cstdio> #include<cmath> using namespace std; struct point{ double x,y; bool operator < (const point&rhs) const { return atan2(y,x) < atan2(rhs.y,rhs.x); } }a[110]; int main(void) { int n; while(scanf("%d",&n)&&n>=0){ for(int i=0;i<n;i++){ scanf("%lf%lf",&a[i].x,&a[i].y); } sort(a,a+n); printf("%.1lf %.1lf",a[0].x,a[0].y); for(int i=1;i<n;i++) printf(" %.1lf %.1lf",a[i].x,a[i].y); printf("\n"); } }
时间: 2024-11-03 22:10:01