Python复数,python复数类型加法运算
# includeltstdio.hgt
#includeltstdlib.hgt
数据类型说明结构复杂
{
浮实;
浮动图像;
}复杂;
复数初始复合体(浮点一,浮点b) /*给复数的实部和虚部复制,并返回复数。*/
{
复杂c;
c。real=a;
c。image=b;
返回c;
}
复数加法(复数c1,复数c2)
{/*两个复数相加。公式:(a bi) (c di)=(a b) (c d)i .*/
复数和;
总和。雷亚尔=C1。皇家C2。真实;
总和。图片=C1。想象C2。形象;
返回总和;
}
复杂子系统(复杂c1、复杂c2)
{/*两个复数相减。公式:(a bi)-(c di)=(a-b) (c-d)i .*/
复杂差离值
dif。雷亚尔=C1。皇家C2。真实;
dif。图片=C1。图片-C2。形象;
返回差离值
}
复数Mul(复数c1,复数c2)
{/*两个复数相乘。公式:(a bi)*(c di)=(ac-bd) (ad bc)i .*/
复杂产品;
产品。雷亚尔=C1。真正的C2。皇家C1。图片* C2。形象;
产品。图片=C1。真正的C2。想象C1。图片* C2。真实;
退回产品;
}
复杂Div(复杂c1,复杂c2)
{/*两个复数相除,利用分母的共轭复数来通分(i*i=-1)。
公式:(a bi)/(c di)=(a bi)*(c-di)/((c di)*(c-di))=(a bi)*(c-di)/(c * c d * d),其中c迪不等于0。*/
复数商;
商数。实数=0;
商数。图像=0;
如果(C2。realt1e-38 C2。图1e-38)
{printf(c2为0!错误!\ n’);回报商;}
商数。实数=
(C1。真正的C2。皇家C1。图片* C2。图片)/(C2。真正的C2。皇家C2。图片* C2。图片);
商数。图像=
(C1。图片* C2。皇家C1。真正的C2。图片)/(C2。真正的C2。皇家C2。图片* C2。图片);
回报商;
}
浮点GetReal(复杂c)
{/*取复数实部*/
返回c .真实;
}
浮点GetImag(复杂c)
{/*取复数虚部*/
返回c .图像
}
作废打印_C(复杂c)
{/*复数输出*/
if(GetImag(c)==0.0)printf( % 5.2f \ n ,GetReal(c));
else if(get real(c)==0.0)printf( % 5.2 fi \ n ,GetImag(c));
else printf(%5.2f %5.2fi\n ,GetReal(c),GetImag(c));
}
void main()
{
复数z1,z2,sum,dif,pro,quo
浮动e1、E2;
字符符号
printf(输入运算符号(,-,*,/):);
scanf(%c ,sym);/* ******************提示输入需要进行的四则运算。 */
printf(输入z1 like: 3.0 2.1i或-3.0-2.1i \ nz1=);
scanf(%f %fi ,e1,E2);
z1=InitComplex(e1,E2);/* **********提示输入复数z1,并存入变量中。 */
printf(Input z2 like: 3.0 2.1i或-3.0-2.1i \ nz2=);
scanf(%f %fi ,e1,E2);
z2=InitComplex(e1,E2);/* ****提示输入复数z2,并存入变量中。 */
开关(对称)
{
case"":sum=Add(Z1,z2);print _ C(sum);打破;
case -: dif=Sub(z1,z2);print _ C(dif);打破;
case *: pro=Mul(z1,z2);print _ C(pro);打破;
case /: quo=Div(z1,z2);print _ C(quo);打破;
默认值:printf(错误符号!);
/********如果输入了 、-、*、/以外的字符,则提示出错。 */
}
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。