标签:
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
给定一组点(x,y),求距离最远的两个点之间的距离。
第一行是点数n(n大于等于2)
接着每一行代表一个点,由两个浮点数x y组成。
输出一行是最远两点之间的距离。
使用cout << fixed << setprecision(4) << dis << endl;输出距离值并精确到小数点后4位。
fixed和setprecision是在<iomanip>头文件里定义的格式控制操作符,需要#include <iomanip>.
6 34.0 23.0 28.1 21.6 14.7 17.1 17.0 27.2 34.7 67.1 29.3 65.1
53.8516
1 #include<iostream> 2 #include<iomanip> 3 #include<cmath> 4 int main() 5 { 6 using namespace std; 7 int num; 8 double x[100], y[100], max = 0; 9 cin >> num; 10 if (num < 2) 11 cout << "error!"; 12 else 13 { 14 15 for (int i = 0; i < num; i++) 16 { 17 cin >> x[i] >> y[i]; 18 } 19 for (int i = 0; i < num - 1; i++) 20 for (int j = i; j < num - 1; j++) 21 { 22 double a = sqrt((x[i] - x[j + 1])*(x[i] - x[j + 1]) + (y[i] - y[j + 1])*(y[i] - y[j + 1])); 23 if (a > max) { 24 max = a; 25 } 26 } 27 cout << fixed << setprecision(4) << max << endl; 28 } 29 return 0; 30 }
标签:
原文地址:http://www.cnblogs.com/tygao/p/5185657.html