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;
    }    
    
    
  • 相关阅读:
    设置IIS允许下载.config文件
    SQL Server 触发器
    MVC参数自动装配
    sql之left join、right join、inner join的区别
    C# 之泛型详解
    Frameset使用教程
    网页引用Font Awesome图标
    ubuntu下apache2 安装 配置 卸载 CGI设置 SSL设置
    深入理解JAVA I/O系列二:字节流详解
    深入理解JAVA I/O系列三:字符流详解
  • 原文地址:https://www.cnblogs.com/pluie/p/12672758.html
Copyright © 2011-2022 走看看