/******************************************************************
*  源程序名：ModelTask6_1_2.cpp                　　　　　　  　　 *
*  功能：编写两个自定义函数，分别实现复数加法与输出复数功能。     *
*        输入功能由主函数完成。                                   *
******************************************************************/
#include <iostream.h>
struct complex{//定义复数形式的结构体变量
	double r;
	double i;
};
complex add(complex c1,complex c2);//函数原型声明
void print(complex c);
void main()
{
	complex n1,n2,sum;
	cout<<"请依次输入两个复数的实部和虚部：";
	cin>>n1.r>>n1.i>>n2.r>>n2.i;
	sum=add(n1,n2);//调用add函数求复数和
	print(n1);//输出复数n1
	cout<<'+';
	print(n2);//输出复数n2
	cout<<'=';
	print(sum);//输出复数和
	cout<<endl;
}
complex add(complex c1,complex c2)
{
	complex tmp;
	tmp.r=c1.r+c2.r;
	tmp.i=c1.i+c2.i;
	return tmp;
}
void print(complex c)
{
	if (c.i>0)//如果虚部是正数，用加号连接实部和虚部
		cout<<'('<<c.r<<'+'<<c.i<<"i)";
	else if (c.i==0)
		cout<<'('<<c.r<<")";
	else//如果虚部是负数，实部和虚部间不用再有符号
		cout<<'('<<c.r<<c.i<<"i)";
	return ;
}