zoukankan      html  css  js  c++  java
  • 函数模板

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

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    1 2 5
     

    输出样例:

    3
    5.83095
    7.7
     

    正确代码:

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    class point
    {
    public:
        double x;
        double y;
        point() : x(0), y(0) {}
        point(double _x, double _y) : x(_x), y(_y) {}
        double operator-(point p) { return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)); }
    };
    
    template <class T> 
    double dist(T a, T b)
    {
        return fabs(a - b);
    }
    
    int main()
    {
        int n;
        while (1)
        {
            cin >> n;
            if (n == 0) break;
            if (n == 1)
            {
                int a, b;
                cin >> a >> b;
                cout << dist(a, b) << endl;
            }
            else if (n == 2)
            {
                double a, b;
                cin >> a >> b;
                cout << dist(a, b) << endl;
            }
            else if (n == 3)
            {
                point a, b;
                cin >> a.x >> a.y >> b.x >> b.y;
                cout << dist(a, b) << endl;
            }
        }
        return 0;
    }    
    
    
  • 相关阅读:
    IntelliJ IDEA设置JDK1.8
    maven Create from archetype
    字符串的获取相关方法
    字符串比较
    题目:自定义4个学生对象,添加到集合,并遍历
    生成6个1-33之间的随机整数,添加到集合,并遍历集合。
    ArrayList的集合概述和基本使用
    对象数组
    匿名对象作为方法的参数和返回值
    构造方法
  • 原文地址:https://www.cnblogs.com/pluie/p/12672758.html
Copyright © 2011-2022 走看看