- C 標準庫
- C 庫 - 首頁
- C 庫 - <assert.h>
- C 庫 - <complex.h>
- C 庫 - <ctype.h>
- C 庫 - <errno.h>
- C 庫 - <fenv.h>
- C 庫 - <float.h>
- C 庫 - <inttypes.h>
- C 庫 - <iso646.h>
- C 庫 - <limits.h>
- C 庫 - <locale.h>
- C 庫 - <math.h>
- C 庫 - <setjmp.h>
- C 庫 - <signal.h>
- C 庫 - <stdalign.h>
- C 庫 - <stdarg.h>
- C 庫 - <stdbool.h>
- C 庫 - <stddef.h>
- C 庫 - <stdio.h>
- C 庫 - <stdlib.h>
- C 庫 - <string.h>
- C 庫 - <tgmath.h>
- C 庫 - <time.h>
- C 庫 - <wctype.h>
- C 標準庫資源
- C 庫 - 快速指南
- C 庫 - 有用資源
- C 庫 - 討論
- C 程式設計資源
- C 程式設計 - 教程
- C - 有用資源
C 庫 - cacos() 函式
C 的複數庫cacos()函式執行給定複數的複數反正弦或反餘弦運算。此函式在 <complex.h> 標頭檔案中定義,自 C99 起可用。
語法
以下是cacos() 函式的 C 庫語法:
double complex cacos(double complex z);
引數
此函式僅接受單個引數:
- z:這是我們要對其進行反正弦運算的複數。
返回值
如果沒有發生錯誤,則該函式返回複數反正弦值 (z)。
示例 1
以下是顯示 cacos() 函式用法的 C 庫程式。
#include <stdio.h>
#include <complex.h>
#include <math.h>
int main() {
double complex z = 1.0 + 2.0 * I;
double complex result = cacos(z);
printf("cacos(%lf + %lfi) = %lf + %lfi\n", creal(z), cimag(z), creal(result), cimag(result));
return 0;
}
輸出
執行上述程式碼後,我們將得到以下結果:
cacos(1.000000 + 2.000000i) = 1.143718 + -1.528571i
示例 2
下面的程式使用迴圈迭代器在遞迴函式中實現級數公式term = -(z * z) * (2 * i - 1) / (2 * i)。
#include <stdio.h>
#include <complex.h>
double complex cacos_sol(double complex z, int n) {
double complex sum = z;
double complex term = z;
for (int i = 1; i <= n; ++i) {
term *= -(z * z) * (2 * i - 1) / (2 * i);
sum += term;
}
return sum;
}
int main() {
double complex z = 1.0 + 2.0 * I;
int terms = 10;
double complex result = cacos_sol(z, terms);
printf("cacos(%lf + %lfi) = %lf + %lfi (approximated with %d terms)\n", creal(z), cimag(z), creal(result), cimag(result), terms);
return 0;
}
輸出
執行上述程式碼後,我們將得到以下結果:
cacos(1.000000 + 2.000000i) = -522414.418148 + -4291552.656029i (approximated with 10 terms)
示例 3
自定義函式 cacos_recursive() 接受兩個引數 z 和 n 來計算項數。當第 n 項達到 0 時,函式返回結果值 z(複數)。
#include <stdio.h>
#include <complex.h>
double complex cacos_recursive(double complex z, int n) {
if (n == 0) {
return z;
}
double complex term = -(z * z) * (2 * n - 1) / (2 * n) * cacos_recursive(z, n - 1);
return term;
}
int main() {
double complex z = 1.0 + 2.0 * I;
int terms = 10;
double complex result = cacos_recursive(z, terms);
printf("cacos(%lf + %lfi) = %lf + %lfi (approximated with %d terms)\n", creal(z), cimag(z), creal(result), cimag(result), terms);
return 0;
}
輸出
上述程式碼產生以下結果:
cacos(1.000000 + 2.000000i) = -522414.418148 + -4291552.656029i (approximated with 10 terms)
c_library_complex_h.htm
廣告