1.复数的表示:用结构体保存复数的实部和虚部

2.复数的加减法:实部和虚部分别相加减

3.复数的乘法:(a+bi)(c+di)=(ac-bd)+(bc+ad)i

4.复数的除法:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2)+(bc-ad)/(c^2+d^2)

(注意:考虑除数为0的情况)

函数部分:

void assignment(Complex *p,float real,float imag);                        /*构造一个复数*/
void addition(Complex *p,Complex Z1,Complex Z2);                    /*加法*/
void subtraction(Complex *p,Complex Z1,Complex Z2);              /*减法*/
void multiplication(Complex *p,Complex Z1,Complex Z2);          /*乘法*/
void division(Complex *p,Complex Z1,Complex Z2);                  /*除法*/
void display(Complex p);                                                            /*打印复数*/

思路:

在主函数中,提示用户分别输入两个复数的实部和虚部,然后调用assignment函数分别构造出这两个复数(抽象),然后用户根据提示信息选择接下来的运算,这里要用到do-while语句和switch

#include<stdio.h>
#include<math.h>typedef struct{float realpart;        /*实部*/float imaginarypart; /*虚部 */}Complex; /*定义"复数"的抽象数据类型*/void assignment(Complex *p,float real,float imag);   /*构造一个复数*/
void addition(Complex *p,Complex Z1,Complex Z2);    /*加法*/
void subtraction(Complex *p,Complex Z1,Complex Z2); /*减法*/
void multiplication(Complex *p,Complex Z1,Complex Z2);  /*乘法*/
void division(Complex *p,Complex Z1,Complex Z2);    /*除法*/
void display(Complex p);    /*打印复数*/int main()
{float realpart,imaginarypart;Complex C1,C2,C;int adjust=0;do{printf("--------------------------------------------\n");printf("******欢迎使用复数计算器************\n");printf("请您输入复数的实部和虚部:\n");scanf("%f%f", &realpart, &imaginarypart);assignment(&C1,realpart,imaginarypart);/*构造复数C1*/display(C1);printf("请输入第二个复数的实部和虚部:\n");scanf("%f%f", &realpart, &imaginarypart);assignment(&C2,realpart,imaginarypart);/*构造复数C2*/display(C2);printf("接下来的操作:1->加法,2->减法,3->乘法,4->除法, 0->退出\n"); scanf("%d",&adjust);if(adjust==1||adjust==2||adjust==3||adjust==4){printf("你的计算结果是:\n");}switch(adjust){/*加法*/case 1:addition(&C,C1,C2);display(C);break;/*减法*/case 2:subtraction(&C,C1,C2);display(C);break;/*乘法*/case 3:multiplication(&C,C1,C2);display(C);break;/*除法*/case 4: if(C2.realpart==0&&C2.imaginarypart==0){printf("除数为0,请重新输入\n");}else{division(&C,C1,C2);display(C);}break;default:if(adjust==0){printf("谢谢使用!\n");}else{printf("输入指令错误!请重新输入\n");}}}while(adjust!=0);return 0;
}void assignment(Complex *p,float real,float imag)  /*定义一个复数*/
{p->realpart=real;p->imaginarypart=imag;
}void addition(Complex *p,Complex Z1,Complex Z2)    /*加法*/
{p->realpart=Z1.realpart+Z2.realpart;p->imaginarypart=Z1.imaginarypart+Z2.imaginarypart;
}void subtraction(Complex *p,Complex Z1,Complex Z2) /*减法*/
{p->realpart=Z1.realpart-Z2.realpart;p->imaginarypart=Z1.imaginarypart-Z2.imaginarypart;
}void multiplication(Complex *p,Complex Z1,Complex Z2)  /*乘法*/
{p->realpart=Z1.realpart*Z2.realpart-Z1.imaginarypart*Z2.imaginarypart;p->imaginarypart=Z1.imaginarypart*Z2.realpart+Z1.realpart*Z2.imaginarypart;
}void division(Complex *p,Complex Z1,Complex Z2)    /*除法*/
{double tt=pow(Z2.realpart,2)+pow(Z2.imaginarypart,2);p->realpart=(Z1.realpart*Z2.realpart+Z1.imaginarypart*Z2.imaginarypart)/tt;p->imaginarypart=(Z1.imaginarypart*Z2.realpart-Z1.realpart*Z2.imaginarypart)/tt;
}void display(Complex p)    //打印复数
{if(p.imaginarypart>0){printf("%f+%fi\n", p.realpart, p.imaginarypart);}else if(p.imaginarypart<0){printf("%f%fi\n", p.realpart, p.imaginarypart);}else{printf("%f\n",p.realpart);}
}

运算结果截图:

C语言实现复数计算器相关推荐

  1. 如何在C艹大作业上用复数计算器拿下一个100分

    0. qt qt简介: 百度百科 下载:官网下载 申请个账号就可以免费用了 安装方式可以在百度上找到,建议安装MinGW,其余自选. 1. 建立第一个qt文件 打开Qt Creator,点击文件,点击 ...

  2. 软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...

    基于AT89C1单片机C语言编写的计算器 #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; ...

  3. C语言中声明复数用什么字母,用c语言定义复数-20210407134457.docx-原创力文档

    标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N] 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N] 用c语言定义复数 实验0 预备实验 实验题目: ...

  4. 【C++ 程序】 TVJ Complex Calculator (v 2.2) 复数计算器

    Contents 简介 应用程序下载 Help What is new in v 2.2 Simple test 输入要求 程序 Main.cpp Complex.h & Complex.cp ...

  5. linux 计算器 c语言,大神教你如何用C语言实现科学计算器

    原标题:大神教你如何用C语言实现科学计算器 用C实现的科学计算器 使用C语言写的科学计算器,可以实现四则运算.三角函数运算.指对数运算:优先级正确:能智能屏蔽空格,能识别输入错误和运算错误,能实现继续 ...

  6. GO语言基础----简易计算器

    GO语言基础----简易计算器 该计算器可以执行两个数字和一个计算符号的计算. 例如,1+1,3*5,9/2- 代码实现: package mainimport("fmt")fun ...

  7. 使用c语言实现复数运算的程序,用C语言实现的复数运算程序设计

    用C语言实现的复数运算程序设计 电大理工 2009年3月 Study of Science and Engineering at RTVU. 第1期 总第238期 用C语言实现的复数运算程序设计 王彦 ...

  8. Java语言GUI实现计算器

    Java语言GUI实现计算器以及源代码 一. 设计分析 1.1任务及其目的 设计一个计算器应用程序,完成复杂的科学运算.设计的计算器应用程序可以完成加法.减法.乘法.除法和科学函数运算.且有小数点.正 ...

  9. 7-105 sdut-C语言实验——三个数排序7-106 sdut-C语言实验——模拟计算器7-107 sdut-C语言实验——找中间数

    目录 7-105 sdut-C语言实验--三个数排序 7-106 sdut-C语言实验--模拟计算器 7-107 sdut-C语言实验--找中间数 7-105 sdut-C语言实验--三个数排序 分数 ...

  10. c语言进行复数的四则运算

    c语言进行复数的四则运算 额..好像没什么好说的直接上代码吧,注意下结构体的用法 #include<stdio.h> struct complex {double re;double im ...

最新文章

  1. Java线程---休眠问题来看并发执行
  2. [EULAR文摘] 肢端MRI能否在未分化关节患者中甄别出RA患者
  3. MySQL自带工具使用介绍
  4. 迁移到阿里云后,NTKO控件报存word 报文件存取错误,请检查网络传输。
  5. python穷举法搬砖_python 穷举法 算24点(史上最简短代码)-阿里云开发者社区
  6. SpringBoot高级消息-RabbitMQ运行机制
  7. draw_circle_mod预生成交互式圆形
  8. Windows下,Netbeans使用C++的配置方法
  9. win7 nginx mysql php_windows7配置Nginx+php+mysql的详细教程
  10. CentOS 7 gedit编辑器中文乱码解决方法
  11. Tableau数据分析:NC Retail Order Data(英)Data Science Program Lab#1(GTI)
  12. Java-访问修饰符
  13. 【Java项目开发】(一) 购物网站项目经验总结
  14. dh算法 理论依据_dh算法(dh算法原理)
  15. RGB灯串24键红外遥控控制器芯片 SOP-8氛围灯小夜灯单片机芯片方案开发
  16. python dateutil_python时间处理模块dateutil
  17. Matlab 全局变量定义与使用
  18. jav使用python模型实现方案
  19. 笔记本计算机内存都多大,你的电脑速度慢吗?笔记本电脑“内存”到底要多大才够用?...
  20. 服装制图软件测试初学者,服装行业版软件测试文案.ppt

热门文章

  1. java枚举类型学习笔记
  2. php源码比赛,TSRC挑战赛: PHP防御绕过挑战实录
  3. mmorpg无缝地图
  4. java phaser 实用场景_猿灯塔-Phaser 使用介绍
  5. PyTorch搭建LSTM实现多变量时间序列预测(负荷预测)
  6. Overture五线谱打曲谱用得上的排版技巧
  7. js根据邮箱账号跳转登录邮箱地址
  8. 51单片机用1602液晶屏实现可调时钟
  9. HDU 3179 二叉搜索树(树的建立)
  10. 黑群晖折腾之此ip已被封锁