菜鸟学C++,看了许久不知错在何处,望大侠们不吝赐教
此程序实现复数的四则运算,但算到乘法时就出错了(结果附于文后,除法还未验证),求指教,多谢了!
下面是代码:
#include<iostream>//#include<cstdlib>using namespace std;class Complex{ private: float rea; float img; public: Complex(float x=0,float y=0): rea(x),img(y) {} ~Complex(){} Complex Add(Complex x){ Complex z; z.rea = rea + x.rea; z.img = img + x.img; return z; } Complex Sub(Complex x){ return Complex(rea - x.rea,img - x.img); } Complex mul(Complex x){ Complex z; z.rea = (rea * x.rea - img * x.img); z.img = (rea * x.img + x.rea * img); return z; } Complex did(Complex x){ Complex z; z.rea = (rea * x.rea + img * x.img); z.img = (x.rea * img - rea * x.img); float c=(x.rea * x.rea+x.img * x.img); z.rea /= c; z.img /= c; return z; } void show(){ cout<<rea<<","<<img<<")"<<endl; }};int main(){ Complex x(1,2),y(3,4),za,zs,zm,zd; cout<<"x is (1,2)"<<endl; cout<<"y is (3,4)"<<endl; za=x.Add(y); cout<<"x plus y is ("; za.show(); zs=x.Sub(y); cout<<"x substract y is ("; zs.show(); zm=x.mul(y); cout<<"x multiply y is ("; zm.show(); zd=x.did(y); cout<<"x divided by y is ("; zd.show(); return 0;}