7-3 复数相加

作者 余春艳

单位 福州大学

题目:一个复数类,运算符重载 + ,实现复数和复数的相加。输入一组复数,每行一个复数,直到输入0结束。 输出这组复数的结果。

提示: 复数的输入和输出符合数学书写规范

输入示例

3+2i

2+3i

0

输出示例

5+5i

因为学识不够所以采用特判的方法,虽然写了带小数的情况,但是本题并不会给小数情况的数据

#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
class Complex{
	private:
		double a;
		double b;
	public:
		Complex(){
			a=0,b=0;
		}
		void input(double x,double y){
			a=x,b=y;
		}
		double hui1(){
			return a;
		}
		double hui2(){
			return b;
		}
};
int main(){
	int i=0,t=0,a=0,b=0,t1=0,count=1,j=0,q=0,b1=0,b2=0;
	string s;
	Complex fu[100];
	double x=1,y=1,c=0,d=0;
	while(cin>>s){
		if(s=="0")
			break;
		else{
			x=0,y=0;
			t1=0,count=1,j=1;
			a=s.length();
/*判断输入的字符串代表的是实数还是复数还是只存在虚部的负数*
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现整数和复数相加的运算符重载,我们需要对 Complex 类进行修改,使它可以接受整数作为参数。修改后的 Complex 类如下: ```c++ class Complex { private: double real, imag; public: Complex(double r = 0, double i = 0) : real(r), imag(i) {} Complex operator+(const Complex& other) const { return Complex(real + other.real, imag + other.imag); } Complex operator+(int x) const { return Complex(real + x, imag); } void Show() const { cout << "(" << real << "+" << imag << "i)"; } }; ``` 我们定义了一个新的加法运算符,用于将整数和复数相加。在该运算符中,我们将整数作为实部,虚部不变,得到一个新的复数。 现在,我们可以通过下面的代码实现测试: ```c++ int main() { Complex z1(3, 4), z2(7), z3, z4(z1); double x, y; cin >> x >> y; z3 = Complex(x, y); cout << endl; z3 = z3 + z2; z3.Show(); cout << endl; z4 = 2 + z4; z4.Show(); cout << endl; z4 = z4 + 2; z4.Show(); cout << endl; Complex z5 = z1 + 2; z5.Show(); cout << endl; Complex z6 = 2 + z1; z6.Show(); return 0; } ``` 这个代码中,我们首先定义了四个复数 z1、z2、z3、z4,并且读入一个复数作为 z3。然后,我们测试了加法运算符和新定义的整数和复数相加的运算符。具体来说,我们进行了以下测试: - z3 = z3 + z2,测试了复数复数相加- z4 = 2 + z4,测试了整数和复数相加- z4 = z4 + 2,测试了复数和整数相加- z5 = z1 + 2,测试了整数和复数相加- z6 = 2 + z1,测试了整数和复数相加。 最后,我们输出了所有测试的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值