点击上方公众号名称关注,获得更多内容
✎ 编 者 悟 语换一个环境,心境可能变好,也可能会增加纷扰,在状态好的时候更适合持续。
文 章 导 读
今天给小伙伴们介绍下用C语言如何实现复数的运算,其实很简单,但编程过程中封装一下复数,并用宏做下处理会让程序更加清晰明了,希望对小伙伴们有所帮助哈,!
1关于复数运行复数有实部虚部,在程序中其实就是实部虚部的运算,复数的虚部符号i,打印时加上,或是将数据转换成字符串等方式加上字符i。
实现时用结构封装一下,并用宏处理下复数的实部和虚部,程序结构会变得更加清晰。
2实例代码实际代码如下,说明在注释中了。
#include
#include
// 复数结构体
typedef struct
{
double real;
double imag;
}complex;
#define REAL(x) (x).real
#define IMAG(x) (x).imag
// 函数声明
complex cpx_make(double real, double imag);
complex cpx_add(complex v1,complex v2);
complex cpx_mul(complex v1,complex v2);
int main(int argc, char *argv[])
{
complex cpx1,cpx2,cpx_tmp1,cpx_tmp2;
// 产生两个复数
cpx1 = cpx_make(2,3);
cpx2 = cpx_make(4,8);
// 复数加法运算,并打印结果
cpx_tmp1 = cpx_add(cpx1,cpx2);
printf("\nThe result of complex add operation is: (%.0f,%.0fi)\n",cpx_tmp1.real,cpx_tmp1.imag);
// 复数乘法运算,并打印结果
cpx_tmp2 = cpx_mul(cpx1,cpx2);
printf("\nThe result of complex mul operation is: (%.0f,%.0fi)\n",cpx_tmp2.real,cpx_tmp2.imag);
return 0;
}
/* 生成复数 */
complex cpx_make(double real, double imag)
{
complex ret;
ret.real=real;
ret.imag=imag;
return ret;
}
/* 复数加法 */
complex cpx_add(complex v1,complex v2)
{
return cpx_make(REAL(v1) + REAL(v2),IMAG(v1) + IMAG(v2));
}
/* 复数乘法 */
complex cpx_mul(complex v1,complex v2)
{
double a,b,c,d;
a = REAL(v1);
b = IMAG(v1);
c = REAL(v2);
d = IMAG(v2);
return cpx_make(a*c - b*d,b*c + a*d);
}
运行结果如下。
总结
今天给小伙伴们介绍下用C语言如何实现复数的运算的方式。后面还会有C语言相关的内容,大家敬请期待哈,。
有问题可以后台留言交流,公众号18年后新申请的,文章后不支持留言功能的。
相关文章:
C语言中的进制互转与数值和字符串互转的混搭玩法
C函数如何一次返回多个值呢?试试这3种方式吧!
原来数组还可以这么玩(宏把数组玩坏了)
利用结构数组和函数指针查找法调用函数
编程意识篇——用结构存储数据以减少函数二次调用,能替代return返回值吗
malloc为什么不能在函数体外给全局变量分配内存
进化论——从函数指针到被结构封装的函数指针及参数的应用举例
专辑推荐:
Python技能专辑
C语言专辑
IDE调试专辑
软件推荐专辑
软实力专辑
Linux专辑
扫码关注我们
❖ Game Over!