题目是中文的题意就不说了。思路是根据给定的点与x正半轴的夹角的大小即求点的横坐标与纵坐标的比值的大小。
根据他们的比值来进行排序。我用的冒泡排序的算法,因为这个是根据数组的下标来进行排序的。正好能够在对比值的排序
的同时来对点的横坐标和纵坐标进行排序。在说一下这题的格式要注意,我就是因为这个错了两次。
#include<stdio.h>
int main()
{
int n,i,j;
double a[105],b[105],c[105];
while(scanf("%d",&n))
{
if(n<0)
break;
for(i=0;i<n;i++)
{
scanf("%lf%lf",&a[i],&b[i]);
c[i]=a[i]/b[i];
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
double temp,temp1,temp2;
if(c[j]<c[j+1])
{
temp=c[j];
temp1=a[j];
temp2=b[j];
c[j]=c[j+1];
a[j]=a[j+1];
b[j]=b[j+1];
c[j+1]=temp;
a[j+1]=temp1;
b[j+1]=temp2;
}
}
}
if(n>0)
printf("%.1lf %.1lf",a[0],b[0]);
for(i=1;i<n;i++)
printf(" %.1lf %.1lf",a[i],b[i]);
printf("\n");
}
return 0;
}