程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中的復數-C基礎

C語言中的復數-C基礎

編輯:關於C語言

復數:      復數比較詳細的內容請參考:復數代數     C支持復數的數學計算,復數Z可以在笛卡爾坐標表示為:Z=x+y*I;其中x和y是實數,I是虛數單位。數x被稱為實部,數y為虛部。在c語言中,一個復數是有浮點類型表示的實部和虛部。兩部分都具有相同的類型,無論是float,double或者long double。   float _complex:實虛都為float double _complex:實虛都為double long double _complex:實虛都為long double 如果在c 源文件中包含了頭文件 complex.h ,complex.h定義了complex 和 I宏。宏定義complex和一個關鍵字_complex 同義。我們可以用complex代替_complex.   下面是個簡單的例子,運行在debian 7 (32bit)         詳細代碼:     復制代碼   1 /*   2  * Title : Complex Numbers   3  * Description: Work with complex numbers in c   4  * Author:Eric.Lee   5  *   6  */   7 #include<stdio.h>   8 #include<complex.h>   9   10 #define Get_Array_Length(tempArray)(sizeof(tempArray)/sizeof(tempArray[0]))  11   12 void GetResult(char operate,double complex x,double complex y)  13 {  14     double complex result = 0+0*I;  15     switch(operate)  16     {  17         case '+':  18             result = x+y;  19             break;  20         case '-':  21             result = x-y;  22             break;  23         case '*':  24             result = x*y;  25             break;  26         case '/':  27             result =x/y;  28             break;  29         default:  30             break;  31     }  32     printf("double complex x %c double complex y=%.2f+%.2fi\n",operate,creal(result),cimag(result));  33   34 }  35   36 int main()  37 {  38     double complex  x = 10.0+15.0*I;  39     double complex y = 20.0-5.0*I;  40   41     printf("working with complex number:\n");  42     printf("Starting values:x=%.2f+%.2fi\ty=%.2f +%.2fi\n",creal(x),cimag(x),creal(y),cimag(y));  43     char operates[] = {'+','-','*','/'};  44     char * op = operates;  45     int i = 0;  46     int operateLength = Get_Array_Length(operates);  47     for(i=0;i<=operateLength-1;i++)  48     {  49         GetResult(*(op++),x,y);  50     }  51   52     return 0;  53 }     復制代碼 creal(x):得到復數的實部(對於 double),如果對於float,使用crealf(x),如果對於long double ,請使用 creall(x)   cimag(x):得到復數的虛部(對於double),如果對於float,使用crealf(x),如果對於long double ,請使用 creall(x)   此外還有一點值得注意的是:                 cos(), exp() 和 sqrt()同樣也會有對應得復數方法,例如:ccos(),cexp(),csqrt()

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved