1784_C语言实现常用的复数运算

news2024/11/19 0:44:46

全部学习汇总: GitHub - GreyZhang/c_basic: little bits of c.

这是最近学习的C语言数据结构的中的案例,但是没有给出具体的实现代码。根据自己的学习水平简单编写了一下,倒是能够计算与输出,但是不知道还有没有什么缺陷。

借用到了部分之前博客中展示的代码,以下是今天实现的核心代码:

#include "complex.h"

#include "complexp.h"

CPX_NUM_p_t CPX_compute_sum(CPX_NUM_p_t cpx1,CPX_NUM_p_t cpx2)

{

    CPX_NUM_p_t cpx_sum = CDA_NEW(CPX_NUM_t);

    cpx_sum->real = cpx1->real + cpx2->real;

    cpx_sum->imaginary = cpx1->imaginary + cpx2->imaginary;

        

    return cpx_sum;

}

CPX_NUM_p_t CPX_compute_diff(CPX_NUM_p_t cpx1,CPX_NUM_p_t cpx2)

{

         CPX_NUM_p_t cpx_diff = CDA_NEW(CPX_NUM_t);

         cpx_diff->real = cpx1->real - cpx2->real;

         cpx_diff->imaginary = cpx1->imaginary - cpx2->imaginary;

         return cpx_diff;

}

CPX_NUM_p_t CPX_compute_neg(CPX_NUM_p_t cpx)

{

         CPX_NUM_p_t result = CDA_NEW(CPX_NUM_t);

         result->real = -cpx->real;

         result->imaginary = -cpx->imaginary;

         return result;

}

CPX_NUM_p_t CPX_compute_prod(CPX_NUM_p_t cpx1,CPX_NUM_p_t cpx2)

{

         CPX_NUM_p_t prod = CDA_NEW(CPX_NUM_t);

         prod->real = cpx1->real * cpx2->real - cpx1->imaginary * cpx2->imaginary;

         prod->imaginary = cpx1->imaginary * cpx2->real + cpx1->real * cpx2->imaginary;

         return prod;

}

CPX_NUM_p_t CPX_compute_quot(CPX_NUM_p_t cpx1,CPX_NUM_p_t cpx2)

{

         CPX_NUM_p_t quot = CDA_NEW(CPX_NUM_t);

         double a,b,c,d;

         a = cpx1->real;

         b = cpx1->imaginary;

         c = cpx2->real;

         d = cpx2->imaginary;

         quot->real = (a * c + b * d)/(c * c + d * d);

         quot->imaginary = (b * c - a * d)/(c * c + d *d);

         return quot;

}

主函数以及简单的测试接口代码:

#include "stdio.h"

#include "cda.h"

#include "complex.h"

int main(void)

{

    CPX_NUM_t complex_num1;

    CPX_NUM_t complex_num2;

    CPX_NUM_t result;

    complex_num1.real = 123;

    complex_num1.imaginary = 234;

    complex_num2.real = 345;

    complex_num2.imaginary = 456;

        

    result = *CPX_compute_sum(&complex_num1,&complex_num2);

         printf("For Sum reuslt is:(%lf,%lfi)\n",result.real,result.imaginary);

         result = *CPX_compute_diff(&complex_num1,&complex_num2);

    printf("For Diff reuslt is:(%lf,%lfi)\n",result.real,result.imaginary);

         result = *CPX_compute_neg(&complex_num1);

         printf("For Neg reuslt is:(%lf,%lfi)\n",result.real,result.imaginary);

         result = *CPX_compute_prod(&complex_num1,&complex_num2);

         printf("For Prod reuslt is:(%lf,%lfi)\n",result.real,result.imaginary);

         result = *CPX_compute_quot(&complex_num1,&complex_num2);

         printf("For Quot reuslt is:(%lf,%lfi)\n",result.real,result.imaginary);

        

    return 0;

}

编译以及运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1032321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++笔记之文档术语——将可调用对象作为函数参数

C笔记之文档术语——将可调用对象作为函数参数 相关博文:C笔记之函数对象functors与可调用对象 文章目录 C笔记之文档术语——将可调用对象作为函数参数1.在函数参数中传递可调用对象2.‘在参数中传入可调用对象’和‘将可调用对象作为函数参数’哪个描述更加专业…

MyBatis友人帐之使用注解开发

一、利用注解开发 mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的。而到MyBatis 3提供了新的基于注解的配置。不幸的是,Java 注解的的表达力和灵活性十分有限。最强大的 MyBatis 映射并不能用注解来构建 sql 类型主要分成 : select () update …

由union引发的Struct占用内存空间和大小端问题的思考

1. 背景 在看Lua源码的时候,很多地方都用到了union(共用体或者联合体),在定义lua类型的时候,为了以一个结构来包含所有的数据类型,设计了一个 TValue类型,TValue类型最终关联到 Value类型&#…

番茄小说推文和番茄短剧推广怎么申请授权

番茄小说推文和番茄短剧推广都可以通过“巨量推文”进行授权 番茄小说是一个独立的小说平台,他们在推文市场有推广预算后交给我们达人进行推广,推广完成后可以获得番茄小说的cpa拉新奖励 番茄短剧和番茄小说类似,只是一个是推广短剧的平台一…

VisualStudio配置opencv

下载opencv 链接:https://opencv.org/releases/ 我下载的是4.7.0,选择windows下载。 下载成功后打开exe文件,选择路径安装。 配置环境变量 安装成功后找到安装目录,复制bin目录路径。 我的是放在了D盘 D:\Opencv4.7.0\opencv…

多模态 多引擎 超融合 新生态!2023亚信科技AntDB数据库8.0产品发布

9月20日,以“多模态 多引擎 超融合 新生态”为主题的亚信科技AntDB数据库8.0产品发布会成功举办,从技术和生态两个角度全方位展示了AntDB数据库第8次大型能力升级和生态建设成果。浙江移动、用友、麒麟软件、华录高诚、金云智联等行业伙伴及业界专家共同…

《动手学深度学习 Pytorch版》 7.5 批量规范化

7.5.1 训练深层网络 训练神经网络的实际问题: 数据预处理的方式会对最终结果产生巨大影响。 训练时,多层感知机的中间层变量可能具有更广的变化范围。 更深层的网络很复杂容易过拟合。 批量规范化对小批量的大小有要求,只有批量大小足够…

CTF--攻防世界--杂项基础

多做几道基础题就会发现这东西真的跟智障题一样,开始嘲笑当初的自己了。 就当是学习笔记了【根据题库给的顺序,随便写几道】 用那个隐写工具一步完事 这一题我是真的理解了杂项的概念,这玩意是真杂啊,死活都没想到居然还有这种题…

网络编程day05(IO多路复用)

今日任务&#xff1a; TCP多路复用的客户端、服务端&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> …

若依使用及源码解析(前后端分离版)

部署环境 JDK > 1.8 MYSQL > 5.7 Maven > 3.0 Node > 12 Redis > 3 运行若依项目 下载若依源码 若依官网 若依项目源码(前后端分离) 运行后端项目 ruoyi-ui就是vue项目&#xff08;这里使用vscode打开&#xff09; 整体用idea打开 1.配置数据库(sq…

千兆以太网传输层 UDP 协议原理与 FPGA 实现

文章目录 前言心得体会一、UDP 协议介绍二、UDP 数据报格式三、UDP 数据发送测试四、Verilog实现UDP 数据发送1、IP 头部检验 IPchecksun 的计算2、以太网报文的校验字段 FCS 的计算3、以太网报文发送模块实现五、以太网数据发送测试六、仿真代码七、仿真波形展示八、上板测试九…

婚礼策划展示小程序制作全程解析

随着互联网的发展&#xff0c;小程序已成为各行各业所钟爱的一种数字化工具。对于婚礼策划师来说&#xff0c;一款专为自己业务打造的小程序能够更好地展示婚礼策划方案&#xff0c;提升服务质量&#xff0c;加强与客户的沟通。以下就是制作婚礼策划展示小程序的全程解析。 一、…

【Linux网络编程】gdb调试技巧

这篇博客主要要记录一下自己在Linux操作系统Ubuntu下使用gbd调试程序的一些指令&#xff0c;以及使用过程中的一些心得。 使用方法 可以使用如下代码 gcc -g test.c -o test 或者 gcc test.c -o test ​ -g的选项最好添加&#xff0c;如果不添加&#xff0c;l指令无法被识别 …

机试(2017 cs se)

2017计算机系夏令营 题解参考&#xff1a; 2017 华东师范计算机系暑期夏令营机考 A. 不等式 Problem #3304 - ECNU Online Judge 有点像贪心算法 选一个刚刚好在条件范围里的b[i]作为候选&#xff0c;【这个“刚刚好”是指选一个符合这个条件的最极限的值】 代码 #in…

力扣669 补9.16

最近大三上四天有早八&#xff0c;真的是受不了了啊&#xff0c;欧嗨呦&#xff0c;早上困如狗&#xff0c;然后&#xff0c;下午困如狗&#xff0c;然后晚上困如狗&#xff0c;尤其我最近在晚上7点到10点这个时间段看力扣&#xff0c;看得我昏昏欲睡&#xff0c;不自觉就睡了1…

关于Python安装Scrapy库的常见报错解决

目录 1、关于pip3命令的报错 2、执行scrapy报错&#xff08;Python3下的OpenSSL模块出错&#xff09; 3、卸载pyopenssl时报错 由于Scrapy该库在Windows下会存在兼容问题&#xff0c;下面介绍的是在Linux系统进行安装。 1、关于pip3命令的报错 报错代码&#xff1a; error…

redis漏洞修复:(CNVD-2019-21763)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、漏洞内容二、镜像准备1.确认镜像版本2.下载镜像 三、配置文件准备1.获取配置文件2.修改配置文件 四、启动redis容器五、修改iptables文件总结 前言 漏扫发…

Java JVM分析利器JProfiler 结合IDEA使用详细教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、JProfiler是什么&#xff1f;二、我的环境三、安装步骤1.Idea安装JProfiler插件1.下载程序的安装包 四、启动 前言 对于我们Java程序员而言&#xff0c;肯…

博通强迫三星签不平等长约,被韩处罚1亿元 | 百能云芯

近日&#xff0c;博通&#xff08;Broadcom&#xff09;这家国际知名的半导体公司因其市场主导地位的滥用&#xff0c;遭到了韩国公平贸易委员会&#xff08;FTC&#xff09;的严厉制裁&#xff0c;罚款高达191亿韩元&#xff0c;约合人民币1.04亿元。这一惩罚背后的故事揭示了…

用AVR128单片机的音乐门铃

一、系统方案 1、使用按键控制蜂鸣器模拟发出“叮咚”的门铃声。 2、“叮”声对应声音频率714Hz&#xff0c;“咚”对应声音频率500Hz,这两种频率由ATmega128的定时器生成&#xff0c;定时器使用的工作模式自定&#xff0c;处理器使用内部4M时钟。“叮”声持续时间300ms&#x…