杭电acm 1785 求解释
额。。题目太长了,就不复制了。。直接贴代码吧。。#include<cstdio>#include<cstring>#include<iostream>#include<c...
额。。题目太长了,就不复制了。。直接贴代码吧。。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
struct peo{
double x ;
double y ;
double d;
}po[105];
bool cmp( peo a,peo b)
{
return a.d>b.d;
}
int main()
{
int n,i,j,k;
double x[120],y[120],s;
while(scanf("%d",&n)!=EOF)
{
if(n<0)break;
for(i=0;i<n;i++)
{
scanf("%lf %lf",&po[i].x,&po[i].y);
s=sqrt(pow (po[i].x,2) + pow (po[i].y,2));
po[i].d=acos(po[i].x/s);/*为什么这里只能用acos而不能用asin或者atan?我试了把这句改成po[i].d=asin(po[i].y/s)提交后WA*/
}
sort(po,po+n,cmp);
for(i=0;i<n;i++)
{
printf("%.1lf %.1lf",po[i].x,po[i].y);
if(i!=n-1)
printf(" ");else printf("\n");
}
}
return 0;
} 展开
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
struct peo{
double x ;
double y ;
double d;
}po[105];
bool cmp( peo a,peo b)
{
return a.d>b.d;
}
int main()
{
int n,i,j,k;
double x[120],y[120],s;
while(scanf("%d",&n)!=EOF)
{
if(n<0)break;
for(i=0;i<n;i++)
{
scanf("%lf %lf",&po[i].x,&po[i].y);
s=sqrt(pow (po[i].x,2) + pow (po[i].y,2));
po[i].d=acos(po[i].x/s);/*为什么这里只能用acos而不能用asin或者atan?我试了把这句改成po[i].d=asin(po[i].y/s)提交后WA*/
}
sort(po,po+n,cmp);
for(i=0;i<n;i++)
{
printf("%.1lf %.1lf",po[i].x,po[i].y);
if(i!=n-1)
printf(" ");else printf("\n");
}
}
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询