首页 > 代码库 > 平面上N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点
平面上N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点
#include<iostream>
#include<algorithm>
using namespace std;
void swap(int &a,int &b)
{
int tmp = a;
a = b;
b = tmp;
}
void ssort(int x[],int y[],int len)
{
for( int i=0;i<len-1;i++)
{
for(int j=0;j<len-i-1;j++)
{
if(x[j]>x[j+1])
{
swap(x[j],x[j+1]);
swap(y[j],y[j+1]);
}
}
}
}
int main()
{
int x[]={1,6,4,2,3};
int y[]={2,4,6,11,9};
ssort(x,y,5);
double max=(y[1]-y[0])/(x[1]-x[0]);
for(int i=2;i<5;i++)
{
double n = (y[i]-y[i-1])/(x[i]-x[i-1]);
max = max>n?max:n;
}
cout<<"max = "<<max<<endl;
getchar();
return 0;
}
平面上N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点