c语言复数相加的程序,运用C语言编写复数的四则运算.docx

..

运用C语言编写复数的四则运算

需求分析

设计一个可进行复数运算的演示程序

实现下列六种基本运算:

(1)由于输入的实部和虚部生成一个复数;(2)两个复数求和;(3)两个复数求差;(4)两个复数求积;(5)从已知复数中分离出虚部。运算结果一相应的复数或实数的表示形式显示。

3.程序执行的命令包括:

a.输入数据生成一个复数

b.求复数和

c.求复数差

d.求复数积

(1)建立一个复数,然后根据提示用户输入两个复数,使得能同时进行两个复数的加.减.乘运算。

输入形式和输入值得范围:分别输入两个复数,其格式为:a+bi用enter结束输入。

输出形式:按程序规定输出其运算值。如:运算后只有实数时只输出实数虚部部分不表示,反之一样

5.测试程序

(1)0,0;0,0;应输出“0”

(2)3.1,0;4.22, 8.9; 应输出“7.32+i8.9”

-1.33, 2.34; 0.1, -6.5; 应输出“-1.23-i4.16”

0, 9.7; -2.1, -9.7;应输出“-2.1”

7.7, -8;-7.7,0;应输出“-i8”

概要分析

为实现上述程序的功能,需要定义一个表示复数的抽象数据类型。

本程序包含的函数:

(1)主函数 main();

构造函数typedef struct();

调用函数 Complex createComplex(float a,float b)

Complex add(Complex z1,Complex z2)

Complex jian(Complex z1,Complex z2)

Complex cheng(Complex z1,Complex z2)

void printComplex(Complex z);

各函数关系如下:

主函数伪代码

main( )

{

说明一个构造函数Complex;

定义两个实数和虚数分别为z1,z2;

提示输入实数和虚数z1,z2;

调用子函数;

提示输入+ - *;

根据输入的符号判断输入的复数做何运算

{

输入+时,调用加法子函数,打印输出;

输入-时,调用加法子函数,打印输出;

输入*时,调用加法子函数,打印输出;

}

}

详细设计

主函数及其他函数

#include

#include

typedef struct

{

float re;

float im;

} Complex;

Complex createComplex(float a,float b) //编写一个函数生成复数//

{

Complex z;

z.re=a;

z.im=b;

return z;

}

void printComplex(Complex z) //输出复数并控制其格式//

{

if(z.re==0&&z.im==0)

printf("0\n");

else if(z.re!=0&&z.im==0)

printf("%.2f\n",z.re);

else if(z.re==0&&z.im!=0)

{

if(z.im>0)

printf("i%.2f\n",z.im);

else if(z.im<0)

printf("-i%.2f\n",fabs(z.im));

}

else

{

if(z.im>0)

printf("%.2f+i%.2f\n",z.re,z.im);

else

printf("%.2f-i%.2f\n",z.re,fabs(z.im));

}

}

Complex add(Complex z1,Complex z2)

{

Complex z;

z.re=z1.re+z2.re;

z.im=z1.im+z2.im;

return z;

}

Complex jian(Complex z1,Complex z2)

{

Complex z;

z.re=z1.re-z2.re;

z.im=z1.im-z2.im;

return z;

}

Complex cheng(Complex z1,Complex z2)

{

Complex z;

z.re=z1.re*z2.re-z1.im*z2.im;

z.im=z1.re*z2.im+z1.im*z2.re;

return z;

}

mai

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值