首页 > 其他分享 >PTA练习题

PTA练习题

时间:2023-05-06 22:13:01浏览次数:47  
标签:练习题 real ty int double PTA Complex 输入

复数类Complex有两个数据成员:a和b, 分别代表复数的实部和虚部,并有若干构造函数和一个重载-(减号,用于计算两个复数的距离)的成员函数。 要求设计一个函数模板

template < class T >

double dist(T a, T b)

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

以上类名和函数模板的形式,均须按照题目要求,不得修改

输入格式:

每一行为一个操作,每行的第一个数字为元素类型,1为整型元素,2为浮点型元素,3为Complex类型,若为整型元素,接着输入两个整型数据,若为浮点型元素,接着输入两个浮点型数据,若为Complex型元素,输入两个Complex型数据(a1 b1 a2 b2),输入0时标志输入结束。

输出格式:

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

输入样例:

1 2 5

3 2 4 5 9

2 2.2 9.9

0

 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4 template <class T>
 5 double dist(T a,T b)
 6 {
 7     return fabs(a-b); 
 8 }
 9 class Complex{
10     private:
11         double real;
12         double imag;
13     public:
14         Complex(double r,double i):real(r),imag(i){}
15         friend double operator - (Complex &c1,Complex &c2)
16         {
17             int i,j;
18             i=c1.real-c2.real;
19             j=c1.imag-c2.imag;
20             return sqrt(i*i+j*j);
21         }
22 };
23 int main()
24 {
25     int ty;
26     cin>>ty;
27     while(ty>0)
28     {
29         switch(ty)
30         {
31             case 1:
32                 int x,y;
33                 cin>>x>>y;
34                 cout<<dist(x,y)<<endl;
35                 break;
36             case 2:
37                 double x1,y1;
38                 cin>>x1>>y1;
39                 cout<<dist(x1,y1)<<endl;
40                 break;
41             case 3:
42                 double a,b,c,d;
43                 cin>>a>>b>>c>>d;
44                 Complex c1(a,b);
45                 Complex c2(c,d);
46                 cout<<dist(c1,c2);
47                 
48         }
49         cin>>ty; 
50     }
51 }

 

标签:练习题,real,ty,int,double,PTA,Complex,输入
From: https://www.cnblogs.com/Lyh3012648079/p/17378569.html

相关文章

  • pta_【CPP0026】以点类Point及平面图形类Plane为基础设计三角形类Triangle
    #include<iostream>#include<cmath>usingnamespacestd;//点类PointclassPoint{private:doublex;doubley;public:Point(doublexv=0,doubleyv=0);/*构造函数*/Point(constPoint&p);/*拷贝构造*/~Point();/*......
  • pta实验报告2
    模板与类(对象数组)#include<bits/stdc++.h>usingnamespacestd;template<classT>Tmaxn(Tx[],intlen){ inti=1; Tmax=x[0]; for(i;i<len;i++) { if(max<x[i]) max=x[i]; } returnmax;}classDate{ private: intyear=0,month=0,day=0; public: Date()......
  • pta实验报告
    实验一:复数类及函数模板(switch语句)#include<bits/stdc++.h>usingnamespacestd;classComplex{private: inta,b; public: Complex(int_a,int_b):a(_a),b(_b){}; doubleoperator-(Complexn) { returnsqrt((a-n.a)*(a-n.a)+(b-n.b)*(b-n.b)); } ~Complex(){};......
  • C++/PTA 函数重载(数据类型不同)
    题目要求用同一个函数名对n(n<=10)个数据进行从小到大排序,数据类型可以是整数、浮点数,用函数重载实现。输入格式:输入n例如3输入n个整数,例如1089输入n个浮点数例如10.235.167.99输出格式:输出n个整数的升序排列:8910以空格间隔,并以空格结尾换行,输出n个浮点数的升......
  • 迁移学习(VMT)《Virtual Mixup Training for Unsupervised Domain Adaptation》
    论文信息论文标题:VirtualMixupTrainingforUnsupervisedDomainAdaptation论文作者:TakeruMiyato,S.Maeda,MasanoriKoyama,S.Ishii论文来源:2019CVPR论文地址:download 论文代码:download视屏讲解:click   ......
  • PTA题目集4~6总结Blog
    1.4~6题目集的大体总结第四次题目集的整体难度还是比较低的,第一题难度最大,放在后面说。第2,3题则涉及对重复数字的处理问题,本意是想要用双重循环解决问题结果运行超时,这也是我第一次学习hash表来解决问题,第4题则需相对更复杂一点,不仅需要对单词进行切割还要按指定规则进行排序,其......
  • PTA 4 - 6 总结
    1、前言这是第二次作业的博客总结,这次主要是在上次作业的基础上加大了难度,考验了我们写代码和自主学习的能力。    04:这次题目集主要学习了:使用LinkedHashSet删除arraylist中的重复数据,封装,了解Scanner类中nextLine()等方法、String类中split()等方法、Integer类中parse......
  • OOP PTA题目集4-6总结
    一、前言距离第一次做题目集总结已经过去了一个月,在这一个月里,我通过写题目又学到了许多新的知识。这一次题目集的难度比上一次的要难,考察的知识更多,也很考察设计能力与逻辑思维能力。题目集4总共7道题,题量适中,除了第一题外难度也适中。考察的内容主要有基础的语法、算法,还有......
  • PTA OOP训练集4-6总结
     一、前言二、设计与分析三、踩坑心得四、改进建议五、总结 南昌航空大学软件学院2201108郭海涛一、前言    OOP4-6次题目集,较前三次,知识点覆盖的范围更加广,难度也骤然上升,尤其是第六次题目集,从第三题开始就没有类图了,需要我们自行根据题目的需求和输入输出来设......
  • PTA实验4~6分析及总结
    1.前言   这是我们第二次的pta作业总结,这次主要是在上次作业的基础上加大了难度,考验了我们的编写代码能力和自主学习能力,考察了我们正则表达式训练,有参无参构造方法,(面对对象编程)(封装性)私有属性的表示和get,set方法的运用,了解Scanner类中nextLine()等方法、String类中split()......