【id:331】【20分】E. OOP 两点间距离(类模板+函数模板)
时间限制
1s
内存限制
128MB
题目描述
写一个函数模板(function template),参数是4个相同类型的参数,把前两个参数看成一个点的坐标,后两个参数看成另一个点的坐标,函数返回两点之间的距离(浮点数)。
主函数中分别输入两组值,调用函数输出结果。
输入
一共有8个数字。
首先是四个浮点数a、b、c、d
然后是四个整数e、f、g、h
输出
先输出点(a,b)到点(c,d)的距离,换行。
然后输出点(e,f)到点(g,h)的距离,换行。
样例查看模式
正常显示
查看格式
输入样例1 <-复制
1.5 3.5 5.5 7.5
3 4 5 6
输出样例1
5.65685
2.82843
没有要求保存小数点后多位,就不用使用fixed进行设置
#include <iomanip>
#include <valarray>
#include "iostream"
using namespace std;
template<class T>
double dis(T a, T b, T c, T d) {
T x = c - a;
T y = d - b;
return sqrt((x * x + y * y));
}
int main() {
double a, b, c, d;
cin >> a >> b >> c >> d;
// cout << fixed << setprecision(5) << one.dis() << endl;
cout << dis(a, b, c, d) << endl;
int e, f, g, h;
cin >> e >> f >> g >> h;
// cout << fixed << setprecision(5) << two.dis() << endl;
cout << dis(e, f, g, h) << endl;
}