- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复数基本运算(C语言)
#includestdio.h#includestdlib.htypedef struct fushu//抽象数据类型定义{ float real;//数据对象 float image;}fushu;fushu ComplexNumberInput(float a,float b)//构造二元组{ fushu c; c.real=a;//实部 c.image=b;//虚部 return(c);}fushu ComplexNumberAdd(fushu c1,fushu c2)//求和运算{ fushu sum; sum.real=c1.real+c2.real; sum.image=c1.image+c2.image; return (sum);}fushu ComplexNumberSub(fushu c1,fushu c2)//求差运算{ fushu sub; sub.real=c1.real-c2.real; sub.image=c1.image-c2.image; return (sub);}fushu ComplexNumberMul(fushu c1,fushu c2)//求积运算{ fushu Mul; Mul.real=c1.real*c2.real-c1.image*c2.image; Mul.image=c1.real*c2.image+c1.image*c2.real; return (Mul);}fushu ComplexNumberDiv(fushu c1,fushu c2)//求商运算{ fushu div; float d1,d2,d3,d4; d1=c1.real*c2.real+c1.image*c2.image; d2=c2.real*c2.real+c2.image*c2.image; d3=c1.image*c2.real-c1.real*c2.image; d4=c2.real*c2.real+c2.image*c2.image; if(d2!=0d4!=0) { div.real=d1/d2; div.image=d3/d4; return(div); } else { div.real=0; div.image=0; return(div); } } void ComplexNumberOutput(fushu c)//输出运算结果{ if(c.real==0.0c.image==0.0) printf(0\n); if(c.real==0.0c.image!=0.0) printf(%fi\n,c.image); if(c.real!=0.0c.image==0.0) printf(%f\n,c.real); if(c.real!=0.0c.image!=0.0) printf(%f+(%fi)\n,c.real,c.image);}void main()//主函数{ int choice; int k; float a1,a2,b1,b2; struct fushu c1,c2,sum,sub,mult,div; printf(欢迎进行复数的基本代数运算\n); printf(1: 复数加法运算\n); printf(2: 复数减法运算\n); printf(3: 复数乘法运算\n); printf(4: 复数除法运算\n); printf(0: 推出系统\n); printf(请分别输入第一个复数的实部和虚部: ); scanf(%f%f,a1,b1); c1 = ComplexNumberInput(a1,b1); printf(第一个复数为: ); ComplexNumberOutput(c1); printf(请分别输入第二个复数的实部和虚部: ); scanf(%f%f,a2,b2); c2 = ComplexNumberInput(a2,b2); printf(第二个复数为: ); ComplexNumberOutput(c2); for(;;) { printf(请输入你选择的功能: ); scanf(%d,choice); switch(choice) { case 0:exit(0); break; case 1:sum = ComplexNumberAdd(c1,c2); printf(求和后结果为: ); ComplexNumberOutput(sum); break; case 2:sub =
您可能关注的文档
最近下载
- 大学生个人简历表格空白模板通用.docx
- 23S516混凝土排水管道基础及接口图集.pdf VIP
- (完整版)《小型露天采石场安全生产标准化评分办法》.pdf
- 砌筑砂浆配合比设计规程.docx VIP
- 医院物业后勤化管理重点部位强化清洁方案及消毒隔离措施方案.docx
- 增量学习与类增长的融合.pptx
- 可编程逻辑控制器(PLC)系列:Siemens S7-1200 (煤炭工业应用)_(11).项目案例分析:矿井提升机控制.docx
- 课题申报书:大学生“慢就业缓就业”心理成因及干预对策研究.docx VIP
- PROE-Program程序设计全解析.doc VIP
- 2014抗爆、泄爆门窗及屋盖、墙体建筑构造14J938.docx
文档评论(0)