C++ 一个复数类,运算符重载 + ,实现复数和复数的相加。
一个复数类,运算符重载+,实现复数和复数的相加。输入一组复数,每行一个复数,直到输入0结束。输出这组复数的结果。输入示例3+2i2+i32i0输出示例8+5i我只想知道如...
一个复数类,运算符重载 + ,实现复数和复数的相加。输入一组复数,每行一个复数,直到输入0结束。 输出这组复数的结果。
输入示例
3+2i
2+i
3
2i
0
输出示例
8+5i
我只想知道如果输入的是3+8i,如何将3输入到此复数类的实部,8输入到虚部~~拜托各位大神了!!! 展开
输入示例
3+2i
2+i
3
2i
0
输出示例
8+5i
我只想知道如果输入的是3+8i,如何将3输入到此复数类的实部,8输入到虚部~~拜托各位大神了!!! 展开
3个回答
展开全部
#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;
}
展开全部
#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++;
}
还有问题再说,希望你能自己独立做下去
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<complex>
std::complex<double>C,D;
cin>>C>>D;C+=D;cout<<C;
大概就是这样
http://zh.cppreference.com/w/cpp/numeric/complex
std::complex<double>C,D;
cin>>C>>D;C+=D;cout<<C;
大概就是这样
http://zh.cppreference.com/w/cpp/numeric/complex
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询