首页 > 代码库 > 平面上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个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点