最远距离(C++实现)

来源:互联网 发布:mac的鼠标不能按右键 编辑:程序博客网 时间:2024/05/17 18:17

最远距离(C++实现)

给定一组点(x,y),求距离最远的两个点之间的距离。
输入
第一行是点数n(n大于等于2),接着每一行代表一个点,由两个浮点数x,y组成。
输出
输出一行是最远两点之间的距离。

样例输出

6 34.0 23.028.1 21.614.7 17.117.0 27.234.7 67.129.3 65.1

样例输出

53.8516

参考程序

//Data:7/18/2017//Writen by Yuxin Liu#include <iostream>#include <iomanip>using namespace std;double dis(double (*)[2], double (*)[2]);//函数声明,计算每两个点的距离int main(){    int n;    cin >> n;    double a[10][2];//二维数组的形式存储坐标点    double result[50];//存储任意两点之间的距离    //输入    for (int i = 0; i < n; i++)    {        for (int j = 0; j < 2; j++)        {            cin >> a[i][j];        }    }    //同时将每个坐标点的x,y值,以地址的形式传递给p和q    double (*p)[2];    p= &a[0];    double (*q)[2];    q= &a[0];    //遍历每个坐标点,求距离    for (int i = 0; i < n; i++)    {        for (int j = 0; j< n; j++)        {            result[i*n+j] = dis(p,q);            q = q + 1;        }        p = p + 1;        q = &a[0];    }    //判断最大值,并输出    double max = 0;    for (int i = 0; i < n; i++)    {        for (int j = 0; j < n; j++)        {            cout << fixed << setprecision(4) << result[i*n + j] << endl;            if (result[i*n + j]>max)                max = result[i*n + j];        }    }    cout << fixed << setprecision(4) << max << endl;    return 0;}//两点之间距离函数的定义double dis(double (*b)[2], double (*c)[2]){    double distance = 0;    distance = sqrt((b[0][0] - c[0][0])*(b[0][0] - c[0][0]) + (b[0][1] - c[0][1])*(b[0][1] - c[0][1]));    return distance;}
原创粉丝点击