1、_#include iostream.h#include #include typedef struct complexint real;int imaginary;void showComplex()if(imaginary=0)coutreal;else if(real=0)coutimaginaryi;elsecout(real+imaginarycomArr;int realflag=0;int imaflag=-1;int realover,ope,imaover,iloc;realover=ope=imaover=iloc=0;for(int i=0;comArri!=0;i+)/
2、*/if(realflag=0 & comArri-0=0 & comArri-0=9)/默认从实部开始计算com.real =com.real*10+comArri-0;realover=i;/coutcom.real=0 & comArri-0=9)/计算虚部com.imaginary =com.imaginary*10+comArri-0;imaover=i;/coutcom.imaginaryendl;else if(comArri=i)imaflag=1;/标志虚部存在iloc=i;elsecout输入错误!默认为0endl;break;/realover=ope=imaover=i
3、loc=0if(iloc!=0&ope!=0)if(iloc+1=ope)/输入时虚部在前实部在后int temp=com.imaginary;com.imaginary=com.real;com.real=temp;else if(realover-ope!=-1 | imaoverope |imaover+1!=iloc)cout输入错误!默认为0endl;com.imaginary=0;com.real=0;if(realflag=0 & imaflag=-1)/表示未检查到输入i,表示无虚部com.imaginary=0;/表示未检查输入+,但存在i,说明无实部。把实部计算值赋值给虚部
4、,实部清0else if(realflag=0 & imaflag=1)com.imaginary=com.real;com.real=0;return com;int main(int argc, char* argv)Complex a;Complex b;Complex sum;couttt运算符重载,实现两个复数求和nendl;cout输入第一个复数(形如6+2i):flush;a=getComplex();/scanf(%d+%di,&a.real,&a.imaginary);cout输入第二个复数(形如6+2i):flush;b=getComplex();/scanf(%d+%di,&b.real,&b.imaginary);/a.real=3;/a.imaginary=4;/b.real=2;/b.imaginary=4;cout这两个复数的和为:endl;sum=a+b;a.showComplex();cout+;b.showComplex();cout=;sum.showComplex();coutendl;return 0;Welcome ToDownload !欢迎您的下载,资料仅供参考!精品资料