zoukankan      html  css  js  c++  java
  • 7-11 2017final函数模板 (20 分)

    7-11 2017final函数模板 (20 分)

    数据的间距问题(函数模板) 类point有三个数据成员:x、y和z, 分别代表x坐标、y坐标和z坐标,并有若干构造函数和一个重载-(减号,计算两点距离)的成员函数。 要求设计一个函数模板,

    template < class T> double dist(T a, T b)

    对int,float,point或者其他类型的数据,返回间距。

    输入格式:

    每一行为一个操作,每行的第一个数字为元素类型,1为整型元素,2为浮点型元素,3为point类型,若为整型元素,接着输入两个整型数据,若为浮点型元素,接着输入两个浮点型数据,若为point型元素,输入两个point型数据(x1 y1 z1 x2 y2 z2),输入0时标志输入结束。

    输出格式:

    对每个输入,每行输出一个间距值。

    输入样例:

    1 2 5
    3 2 4 7 5 9 7
    2 2.2 9.9
    0
    

    输出样例:

    3
    5.83095
    7.7
    

    代码

    #include<bits/stdc++.h>
    using namespace std;
    
    class point{
    	private:
    		double x;
    		double y;
    		double z;
    	public:
    		point(){
    			
    		}
    		point(double ox,double oy,double oz):x(ox),y(oy),z(oz){
    			
    		}
    		double squ(double num)
    		{
    			return num*num;
    		}
    		double operator-(point& out){
    			return sqrt(squ(x-out.x)+squ(y-out.y)+squ(z-out.z));
    		}
    };
    
    template<class T>
    double dist(T a,T b)
    {
    	return abs(a-b);
    }
    int main()
    {
    	int ops;
    	while(1)
    	{
    		cin>>ops;
    		if(!ops)
    		   break;
    		switch(ops)
    		{
    			case 1:
    				{
    					int x,y;
    					cin>>x>>y;
    					cout<<dist(x,y)<<endl;
    					break;
    				}
    			case 2:
    				{
    					double x,y;
    					cin>>x>>y;
    					cout<<dist(x,y);
    					break;
    				}
    			case 3:
    				{
    					point x,y;
    				    double xa,xb,xc,ya,yb,yc;
    				    cin>>xa>>xb>>xc>>ya>>yb>>yc;
    					x=point(xa,xb,xc);y=point(ya,yb,yc);
    					cout<<dist(x,y)<<endl;
    					break;	
    				}
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    顺序查找
    折半查找
    KMP
    php长时间的脚本,报502
    AcWing 27. 数值的整数次方
    acwing 25. 剪绳子
    Best Cow Line <挑战程序设计竞赛> 习题 poj 3617
    acwing 23. 矩阵中的路径
    AcWing 34. 链表中环的入口结点
    AcWing 33. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/14826373.html
Copyright © 2011-2022 走看看