C++ 一个复数类,运算符重载 + ,实现复数和复数的相加。

一个复数类,运算符重载+,实现复数和复数的相加。输入一组复数,每行一个复数,直到输入0结束。输出这组复数的结果。输入示例3+2i2+i32i0输出示例8+5i我只想知道如... 一个复数类,运算符重载 + ,实现复数和复数的相加。输入一组复数,每行一个复数,直到输入0结束。 输出这组复数的结果。
输入示例
3+2i
2+i
3
2i
0
输出示例
8+5i

我只想知道如果输入的是3+8i,如何将3输入到此复数类的实部,8输入到虚部~~拜托各位大神了!!!
展开
 我来答
du小虾
2013-06-17 · TA获得超过497个赞
知道小有建树答主
回答量:373
采纳率:57%
帮助的人:211万
展开全部
#include <iostream>

using namespace std;

class Complex
{
public:
    Complex(){}
    Complex(float i,float j)
    {
        this->a = i;
        this->b = j;
    }
    Complex& operator+(Complex &x);
    float getA(){return a;}
    float getB(){return b;}
private:
    float a;//实数
    float b;//虚数
};


Complex& Complex::operator+(Complex &x)
{
    this->a += x.a;
    this->b += x.b;
    return *this;
}

int main()
{
    Complex com1(3,2),com2(2,1),com3(3,0),com4(0,2),com5(0,0);
    Complex com;
    com = com1+com2+com3+com4+com5;
    cout<<com.getA()<<"+"<<com.getB()<<"i"<<endl;//8+5i
    return 0;
}
ljt20061908
推荐于2017-11-25 · TA获得超过1033个赞
知道小有建树答主
回答量:527
采纳率:87%
帮助的人:201万
展开全部
 #include <iostream>
#include<stdio.h>
using namespace std;
class Complex {
public:
 Complex (int r=0, int i=0) : m_r (r), m_i (i) {}
 void print (void) const {
  cout << m_r << '+' << m_i << 'i' << endl;
 }
 const Complex operator+ (const Complex& c) const {
  return Complex (m_r + c.m_r, m_i + c.m_i);
 }
 private:
 int m_r; // 实部
 int m_i; // 虚部

};
int main (void) {
    int r,i;
    printf("请输入一个复数形如:3+8i\n");
    scanf("%d+%di",&r,&i);
    Complex c1(r,i);//现在就是复数3+8i
    //接下来的代码你想干什么就补相应的操作


 return 0;

}
追问
额。我想你理解有点错了,不只是输入3+8i,3+8i只是一个特例,我是说输入任意一个复数时,将其实部和虚部赋给这个复数类里的两个参数,比如:输入5,将5赋给实部,虚部为0,输入i,将0赋给实部,虚部为1,输入0时直接实部为0虚部为0,这样。。
追答
要实现你说得这么智能有点小麻烦
说思路吧!
定义char str[50];//用来存储输入的字符
gets(str);//函数读取一行字符存储到str中(以回车结尾)
现在解析str字符串的内容:
while(*str !='\0')
{
char c = *str;
if(c>'0' && c < ‘9’ || c=='i')//证明第一个字符时有效数字
//为数字时是个情况,为i也是一种情况
//接下来一个个字符读,记得将字符串转换成数字:字符串300转换成数字300等,就需要你耐心了
str++;
}
还有问题再说,希望你能自己独立做下去
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1b13c83eb
2013-06-17 · TA获得超过466个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:129万
展开全部
#include<complex>
std::complex<double>C,D;
cin>>C>>D;C+=D;cout<<C;
大概就是这样
http://zh.cppreference.com/w/cpp/numeric/complex
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式