C语言编写一个嵌套函数计算组合数,编写一个函数计算组合关于二项式定理用C++...

这篇博客介绍了如何在C++中实现复数类,包括构造函数、赋值运算符、加减乘除运算符以及比较运算符。还展示了如何创建一个实数子类,并提供了主函数中计算二次方程解的示例,涵盖了复数的数学运算和面向对象编程概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

wkzxnz81138

2014.02.07

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:51%    等级:12

已帮助:19761人

#include

#include

#include

using namespace std;class complex

{

private:

double re;

double im;public:

complex(){}

complex(double a,double b){re=a;im=b;}

void set(double a,double b){re=a;im=b;}

double geti()

{

return im;

}

double getr()

{

return re;

} complex operator +=(complex &a)

{ this->re+=a.re;

this->im+=a.im;

return *this;

} complex operator -=(complex &a)

{

this->re-=a.re;

this->im-=a.im;

return *this;

} complex operator *=(complex &a)

{

re =re*a.re-im*a.im;

im =re*a.im+a.re*im;

} complex operator /=(complex &a)

{

if(a.re||a.im)

{

re =(re*a.re+im*a.im)/(a.re*a.re+a.im*a.im);

im =(re*a.im-a.re*im)/(a.re*a.re+a.im*a.im);

}

} friend ostream& operator << (ostream& os, complex& c);

friend istream& operator >> (istream& is, complex& c);

friend complex operator +(complex &a, complex &b);

friend complex operator -(complex &a);

friend complex operator -(complex &a, complex &b);

friend complex operator *(complex &a, complex &b);

friend complex operator /(complex &a, complex &b);

friend int operator ==(complex &a, complex &b);

friend int operator !=(complex &a, complex &b);

};

complex operator +(complex &a, complex &b)

{

complex temp;

temp.re = a.re + b.re;

temp.im = a.im + b.im;

return temp;

}complex operator -(complex &a)

{

a.re=-a.re;

a.im=-a.im;

return a;

}complex operator -( complex &a, complex &b )

{

complex temp;

temp.re = a.re - b.re;

temp.im = a.im - b.im;

return temp;

}complex operator *(complex &a, complex &b)

{

complex temp;

temp.re = a.re * b.re - a.im * b.im;

temp.im = a.re * b.im + a.im * b.re;

return temp;

}complex operator /(complex &a, complex &b)

{

complex temp;

temp.re = (a.re * b.re + a.im * b.im) / (b.re * b.re + b.im * b.im);

temp.im = (a.im * b.re - a.re * b.im) / (b.re * b.re + b.im * b.im);

return temp;

} int operator ==(complex &a, complex &b)

{

return (a.re == b.re && a.im == b.im);

}int operator !=(complex &a, complex &b)

{

return !(a==b);

}

ostream& operator << (ostream& os, complex& c)

{

os << c.re;

if(c.im > 0)

os << "+" << c.im << "i" << endl;

else

os << c.im << "i" << endl;

return os;

}

istream& operator >> (istream& is, complex& c)

{ cout << "real:";

is >> c.re;

cout << "imaginary:";

is >> c.im;

return is;

}class realn:public complex

{

public:

realn(){}

realn(double a){set(a,0);}

friend ostream& operator <

{

os<

return os;

}

friend istream& operator >>(istream& is, realn& c)

{

double x;

is>>x;

c.set(x,0);

return is;

}

};int main()

{

double a,b,c,x1,x2,y1,y2;

cout<

cin>>a>>b>>c;

if(a==0)cout<

double d=b*b-4*a*c;

if(d>0)

{

x1=((-b)+sqrt(d))/(2*a);

y1=((-b)-sqrt(d))/(2*a);

realn temp(x1);

realn temp2(y1);

cout<

cout<

cout<

cout<

cout<

} else if(d==0)

{

x1=y1=(-b)/(2*a);

realn temp(x1);

cout<

cout<

} else if(d<0)

{

x1=(-b)/(2*a);x2=sqrt(-d)/(2*a);

y1=(-b)/(2*a);y2=-sqrt(-d)/(2*a);

complex temp(x1,x2);

complex temp2(y1,y2);

cout<

cout<

cout<

cout<

cout<

} return 0;

}

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值