C语言的complex.h库复数运算

C语言的complex.h库复数运算C支持复数的数学计算,复数Z可以在笛卡尔坐标表示为:Z=x+y*I;其中x和y是实数,I是虚数单位。数x被称为实部,数y为虚部。在c语言中,一个复数是有浮点类型表示的实部和虚部。两部分都具有相同的类型,无论是float,double或者longdouble。float_complex:实虚都为float double_complex:实虚都为double longdouble_c…

C支持复数的数学计算,复数Z可以在笛卡尔坐标表示为:Z=x+y*I;其中x和y是实数,I是虚数单位。数x被称为实部,数y为虚部。在c语言中,一个复数是有浮点类型表示的实部和虚部。两部分都具有相同的类型,无论是float,double或者long double。

  1. float _complex:实虚都为float
  2. double _complex:实虚都为double
  3. long double _complex:实虚都为long double

如果在c 源文件中包含了头文件 complex.h ,complex.h定义了complex 和 I宏。宏定义complex和一个关键字_complex 同义。我们可以用complex代替_complex.

此外还有一点值得注意的是:

              cos()exp() 和 sqrt()同样也会有对应得复数方法,例如:ccos(),cexp(),csqrt()

/*
 * Title : Complex Numbers
 * Description: Work with complex numbers in c
 * Author:Eric.Lee
 *
 */

#include<stdio.h>
#include<complex.h>

#define Get_Array_Length(tempArray) sizeof(tempArray)/sizeof(tempArray[0])

void GetResult(char operate,double complex x,double complex y)
{
    double complex result = 0+0*I;
    switch(operate)
    {
        case '+':
            result = x+y;
            break;
        case '-':
            result = x-y;
            break;
        case '*':
            result = x*y;
            break;
        case '/':
            result =x/y;
            break;
        default:
            break;
    }
    printf("double complex x %c double complex y=%.2f+%.2fi\n",operate,creal(result),cimag(result));

}

int main()
{
    double complex  x = 10.0+15.0*I;
    double complex y = 20.0-5.0*I;

    printf("working with complex number:\n");
    //creal(x):得到复数的实部(对于 double),如果对于float,使用crealf(x),如果对于long double ,请使用 creall(x)
    //cimag(x):得到复数的虚部(对于double),如果对于float,使用crealf(x),如果对于long double ,请使用 creall(x)
    printf("Starting values:x=%.2f+%.2fi\ty=%.2f +%.2fi\n",creal(x),cimag(x),creal(y),cimag(y));
    char operates[] = {'+','-','*','/'};
    char * op = operates;
    int i = 0;
    int operateLength = Get_Array_Length(operates);
    for(i=0;i<=operateLength-1;i++)
    {
        GetResult(*(op++),x,y);
    }

    return 0;
}

 

今天的文章C语言的complex.h库复数运算分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/26490.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注