编程题#3:最远距离

描述

给定一组点(x,y),求距离最远的两个点之间的距离。

输入

第一行是点数n(n大于等于2)

接着每一行代表一个点,由两个浮点数x y组成。

输出

输出一行是最远两点之间的距离。

使用cout << fixed << setprecision(4) << dis << endl;输出距离值并精确到小数点后4位。

fixed和setprecision是在<iomanip>头文件里定义的格式控制操作符,需要#include <iomanip>.

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
double x[100] = {0};
double y[100] = {0};
double d[10000] = {0};

int main() {
    int n, k = 0;
    cin >> n;
    for (int i = 0; i < n; i++) 
        cin >> x[i] >> y[i];
    // 求每两点间距离 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            d[k] = sqrt((x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]));
            k++;
        }
    }
    //对距离数组进行排序 
    for (int i = 0; i < k - 1; i++) 
        for (int j = 0; j < k - 1 - i; j++) {
            if (d[j + 1]  < d[j]) {
                double temp;
                temp = d[j];
                d[j + 1] = d[j];
                d[j] = temp;
            } 
        }
    cout << fixed << setprecision(4) << d[k - 1] << endl; 
    return 0;
}

 

posted on 2017-10-26 12:53  平行线不会相交  阅读(894)  评论(0)    收藏  举报

导航