C语言复数运算(结构体)
复数的加减乘除
这是出自某学习网站的一道题,主要是本人写的,结尾部分为自带部分。
*// 复数加法
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语言复数运算(结构体)相关推荐
- c语言复数除法结构体,试用C语言的结构类型定义表示复数的抽象数据类型。
满意答案 horoggg 2014.09.03 采纳率:58% 等级:9 已帮助:462人 struct num { float a;/*实部*/ float b;/*虚部*/ }; struc ...
- C语言入门(七)——结构体
复合类型与结构体 数据抽象 数据类型标志 嵌套结构体 复合类型与结构体 在编程语言中,最基本的,不可再分的数据类型称为基本类型,例如整型,浮点型;根据语法规则由基本类型组合而成的类型称为复合类型,例如 ...
- Linux结构体变量报错,C语言中的结构体
用户自己建立自己的结构体类型 1. 定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...
- C语言指针与结构体详述
C语言指针与结构体详述 前言 一.数组概述 1.1 一维数组 1.2 二维数组 1.3 多维数组 二.字符数组和字符串 2.1 字符数组 2.2 字符串 2.3 字符串函数 2.4 拓展字符串函数 三 ...
- C 语言实例 - 使用结构体(struct)
C 语言实例 - 使用结构体(struct)C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...
- Go语言基础之结构体
转载地址:https://www.liwenzhou.com/posts/Go/10_struct/ Go语言中没有"类"的概念,也不支持"类"的继承等面向对象 ...
- c语言 结构体ppt,C语言知识学习结构体.ppt
C语言知识学习结构体.ppt Chap 9 结构,9.1 输出平均分最高的学生信息 9.2 学生成绩排序 9.3 修改学生成绩,本章要点,什么是结构结构与数组有什么差别 有几种结构的定义形式,它们之间 ...
- C语言小记:结构体及其在内存中的储存形式
C语言小记:结构体及其在内存中的储存形式 1.结构体 结构体的作用:自定义一个包含多种不同数据类型的变量. 语法: struct 结构体名称 {结构体成员1:结构体成员2:结构体成员3:... } 定 ...
- C语言中的结构体,结构体中数组初始化与赋值
最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...
- Go语言学习、结构体
最近疫情比较严重,过年也不能出门,闲来无事,继续更新博客吧. 武汉加油! 我们来继续说下go语言中的结构体 比如我们现在想存储一个学生信息,如:学号.姓名.年龄.性别,等信息,按照我们以前的存储习惯, ...
最新文章
- 视频动态库测试及心得
- threadpoolexecutor底层实现原理
- OpenShift 4 之Istio-Tutorial (7) 利用VirtualService的故障注入实现混沌测试Chaos Testing
- 获取小程序 openid
- List分组 用于客服对话分组场景
- 力控组态软件与mysql_力控组态软件实时数据库的原理
- java pdf 分页_java操作PDF文件,可支持分页、合并、图片转PDF等
- git鉴权失败问题 以及每次clone 都要输入用户名密码问题
- 兜兜转转躲不命运轮回---Java基础学习笔记3
- 苹果电脑可以装windows系统吗_苹果电脑MacBook双系统安装好后,如何下载Windows支持组件?...
- Office Word 2016 Mathtype出现omml2mml.xsl 问题的解决方法
- a java exception has occured java
- ubuntu账户添加和删除
- 关于Gradle新版插件依赖方式
- 李笑来《韭菜的自我修养》笔记
- Scrapy-Splash爬取淘宝排行榜(二)
- 047 中值定理之型四(ξ η复杂度不同,留复杂中值项);型五泰勒公式之核心关键取x0,x
- 纽约原油期货追随股市走高
- 云计算部署与管理 NSD CLOUD
- GWAS丨GEMMA软件下载和安装