zoukankan      html  css  js  c++  java
  • complex类定义

    关于complex类的定义:

    #include<iostream>
    using namespace std;
    class complex
    {
        public:
            complex()
            {real=0;im=0;}
            complex(float a,float b):real(a),im(b){}
            friend complex operator+(complex& a,complex& b);
            friend complex operator-(complex& a,complex& b);
            friend complex operator*(complex& a,complex& b);
            friend complex operator/(complex& a,complex& b);
            friend istream& operator>> (istream&,complex&);
            friend ostream& operator<< (ostream& output,complex& a);
            void display();
    
        private:
            float real;
            float im;
    };
    
    void complex::display()
    {
    
        if(real<0.1&&real>-0.1)
            real = 0;
        if(im<0.1&&im>-0.1)
            im=0;   
        if(im==0)
            {   cout.setf(ios::fixed);
                cout.precision(1);
                cout<<real;}
        else if(real==0.0&&im!=0)
            {
                cout.setf(ios::fixed);
                cout.precision(1);
                cout<<im<<'i';
            }
        else
            {
                if(im>0)
                {cout.setf(ios::fixed);
                cout.precision(1);
    
                cout<<real<<'+'<<im<<'i';}
                else
                {
                cout.setf(ios::fixed);
                cout.precision(1);
    
                cout<<real<<im<<'i';
                }   
            }
    }
    complex operator+(complex& a,complex& b)
    {
        complex ans;
        ans.real = a.real+b.real;
        ans.im = a.im+b.im; 
        return ans;
    }
    complex operator-(complex& a,complex& b)
    {
        complex ans;
        ans.real = a.real-b.real;
        ans.im = a.im-b.im; 
        return ans;
    }
    complex operator*(complex& a,complex& b)
    {
        complex ans;
        ans.real = a.real*b.real-a.im*b.im;
        ans.im = a.real*b.im+a.im*b.real;   
        return ans;
    }
    complex operator/(complex& a,complex& b)
    {
        complex ans;
        ans.real = (a.real*b.real+a.im*b.im)/(b.real*b.real+b.im*b.im);
        ans.im =  (a.im*b.real-a.real*b.im)/(b.real*b.real+b.im*b.im);
        return ans;
    }
    istream& operator>> (istream& input,complex& a)
    {
        input>>a.real>>a.im;
        return input;
    }
    ostream& operator<< (ostream& output,complex& a)
    {
        output<<'('<<a.real<<','<<a.im<<')';
        return output;
    }
    int main()
    {
    
        complex a,b,ans1,ans2,ans3,ans4;
        cin>>a>>b;
        ans1=a+b;
        ans2=a-b;
        ans3=a*b;
        ans4=a/b;
    
        return 0;
    }
  • 相关阅读:
    JSP
    结束程序-wpscloudsvr 程序没有响应,要返回Windows并检查程序状态,请单击“取消”,如果选择立即结束程序,你会失去
    解决Serlet API没导进导致的错误
    JDBC工具类
    数据库小项目
    数据库外键主键
    Mysql操作表时报错Table doesn't exist解决办法
    这大概是最细的YOLOX中的Mosaic And Mixup 实现源码分析了吧
    Sigcomm20 Hoyan 阅读笔记
    定时获取最新ssr服务器的方法
  • 原文地址:https://www.cnblogs.com/zhengkang/p/5712416.html
Copyright © 2011-2022 走看看