复数的加减乘除

这是出自某学习网站的一道题,主要是本人写的,结尾部分为自带部分。
*// 复数加法
COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y);
// 复数减法
COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y);
// 复数乘法
COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y);
// 复数除法
COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX y);
//为除数,y为被除数

要求:当除数为零时,ComplexDiv 函数报告错误,函数值为零。

*示例 1
输入
4.2+1.5i
2.5-0.3i

输出
6.7+1.2i
1.7+1.8i
10.95+2.49i
1.58517+0.790221i

#include <stdio.h>typedef struct complex
{double re;double im;
}COMPLEX;
void ComplexInput(COMPLEX *complex){scanf("%lf%lfi",&complex->re,&complex->im);
}
void ComplexOutput(const COMPLEX *complex){printf("%g%+gi",complex->re,complex->im);
}
// 复数加法
COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y)
{COMPLEX p;p.re = x->re + y->re;p.im = x->im + y->im;return p;
}
// 复数减法
COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y)
{COMPLEX q;q.re = x->re - y->re;q.im = x->im - y->im;return q;
}
// 复数乘法
COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y)
{COMPLEX r; r.re = (x->re * y->re)-(x->im * y->im);r.im = (x->re * y->im)+(x->im * y->re);return r;
}
// 复数除法
COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX *y)
{COMPLEX s;if(y->re!=0&&y->im!=0){ double w=(y->re * y->re + y->im * y->im);s.re = ((x->re * y->re)+(x->im * y->im))/w;s.im = -((x->re * y->im)-(x->im * y->re))/w;}if(y->re==0&&y->im==0){printf("Divided by zero!\n");return *y;}return s;
}int main()
{COMPLEX a, b, p, q, r, s;ComplexInput(&a);ComplexInput(&b);p = ComplexAdd(&a, &b);ComplexOutput(&p);putchar('\n');q = ComplexSub(&a, &b);ComplexOutput(&q);putchar('\n');r = ComplexMul(&a, &b);ComplexOutput(&r);putchar('\n');s = ComplexDiv(&a,&b);ComplexOutput(&s);putchar('\n');return 0;
}

p, q, r, s分别作为复数加减乘除运算结果输出

我也是刚开始学C语言,写的不好,勿喷,谢谢

C语言复数运算(结构体)相关推荐

  1. c语言复数除法结构体,试用C语言的结构类型定义表示复数的抽象数据类型。

    满意答案 horoggg 2014.09.03 采纳率:58%    等级:9 已帮助:462人 struct num { float a;/*实部*/ float b;/*虚部*/ }; struc ...

  2. C语言入门(七)——结构体

    复合类型与结构体 数据抽象 数据类型标志 嵌套结构体 复合类型与结构体 在编程语言中,最基本的,不可再分的数据类型称为基本类型,例如整型,浮点型;根据语法规则由基本类型组合而成的类型称为复合类型,例如 ...

  3. Linux结构体变量报错,C语言中的结构体

    用户自己建立自己的结构体类型 1.  定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...

  4. C语言指针与结构体详述

    C语言指针与结构体详述 前言 一.数组概述 1.1 一维数组 1.2 二维数组 1.3 多维数组 二.字符数组和字符串 2.1 字符数组 2.2 字符串 2.3 字符串函数 2.4 拓展字符串函数 三 ...

  5. C 语言实例 - 使用结构体(struct)

    C 语言实例 - 使用结构体(struct)C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...

  6. Go语言基础之结构体

    转载地址:https://www.liwenzhou.com/posts/Go/10_struct/ Go语言中没有"类"的概念,也不支持"类"的继承等面向对象 ...

  7. c语言 结构体ppt,C语言知识学习结构体.ppt

    C语言知识学习结构体.ppt Chap 9 结构,9.1 输出平均分最高的学生信息 9.2 学生成绩排序 9.3 修改学生成绩,本章要点,什么是结构结构与数组有什么差别 有几种结构的定义形式,它们之间 ...

  8. C语言小记:结构体及其在内存中的储存形式

    C语言小记:结构体及其在内存中的储存形式 1.结构体 结构体的作用:自定义一个包含多种不同数据类型的变量. 语法: struct 结构体名称 {结构体成员1:结构体成员2:结构体成员3:... } 定 ...

  9. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  10. Go语言学习、结构体

    最近疫情比较严重,过年也不能出门,闲来无事,继续更新博客吧. 武汉加油! 我们来继续说下go语言中的结构体 比如我们现在想存储一个学生信息,如:学号.姓名.年龄.性别,等信息,按照我们以前的存储习惯, ...

最新文章

  1. 视频动态库测试及心得
  2. threadpoolexecutor底层实现原理
  3. OpenShift 4 之Istio-Tutorial (7) 利用VirtualService的故障注入实现混沌测试Chaos Testing
  4. 获取小程序 openid
  5. List分组 用于客服对话分组场景
  6. 力控组态软件与mysql_力控组态软件实时数据库的原理
  7. java pdf 分页_java操作PDF文件,可支持分页、合并、图片转PDF等
  8. git鉴权失败问题 以及每次clone 都要输入用户名密码问题
  9. 兜兜转转躲不命运轮回---Java基础学习笔记3
  10. 苹果电脑可以装windows系统吗_苹果电脑MacBook双系统安装好后,如何下载Windows支持组件?...
  11. Office Word 2016 Mathtype出现omml2mml.xsl 问题的解决方法
  12. a java exception has occured java
  13. ubuntu账户添加和删除
  14. 关于Gradle新版插件依赖方式
  15. 李笑来《韭菜的自我修养》笔记
  16. Scrapy-Splash爬取淘宝排行榜(二)
  17. 047 中值定理之型四(ξ η复杂度不同,留复杂中值项);型五泰勒公式之核心关键取x0,x
  18. 纽约原油期货追随股市走高
  19. 云计算部署与管理 NSD CLOUD
  20. GWAS丨GEMMA软件下载和安装

热门文章

  1. matlab中bitget函数用法_Matlab函数大全
  2. Python编程基础 第七章 编程练习 用户从键盘上输入一个字符串,如果该字符串的内容不是有效的数值,则输出invalid;如果是有效的数值,再判断其是否是整数,如果是整数则输出yes,否则输出no。
  3. C 语言为什么不会过时?
  4. 蓝队攻击的四个阶段(二)
  5. IEEE T PAMI投稿注意事项
  6. 软件综合实践专题作业--墨刀的使用
  7. 文件已经删除,但是空间没有释放的异常
  8. 漂亮妹妹~~~~~~`
  9. 大数据的数据科学与关键技术是什么?
  10. 可控制导航下拉方向的jQuery下拉菜单代码