P1888 三角函数c语言
时间: 2025-04-29 12:51:04 浏览: 24
### C语言中实现三角函数
在C语言中,可以通过自定义函数来实现常见的三角函数,如正弦(sin)、余弦(cos)等。下面将以`mySin`为例展示如何编写一个近似计算正弦值的程序[^3]。
#### 自定义 `mySin` 函数
为了提高精度并减少误差,在这里采用泰勒级数展开的方式来逼近真实值:
\[ \sin(x)=x-\frac{x^{3}}{3!}+\frac{x^{5}}{5!}-\cdots \]
```c
#include <stdio.h>
#include <math.h>
// 计算阶乘辅助函数
long long factorial(int n){
if (n==0 || n==1)
return 1;
else
return n*factorial(n-1);
}
double mySin(double x, int terms){ // 参数terms表示要使用的项数
double sum=0.0;
for(int i=0;i<terms;i++){
sum+=pow(-1,i)*pow(x,(2*i)+1)/factorial((2*i)+1);
}
return sum;
}
```
此段代码实现了基于泰勒公式的简单版本的`mySin`函数,其中包含了两个部分:一个是用于求解阶乘的帮助函数;另一个则是核心逻辑所在之处——利用循环累加每一项直到指定次数为止。
#### 主函数测试
接下来是在主函数里调用上述方法,并打印出结果以及比较内置的标准库函数的结果:
```c
int main(){
double angle;
printf("请输入角度(弧度制):%lf\n",angle);
scanf("%lf",&angle);
double mysin_result=mySin(angle,10); // 使用前10项进行估算
double libsinf_result=sin(angle);
printf("使用自制函数得到的结果:%f\n",mysin_result);
printf("使用标准库函数得到的结果:%f\n",libsinf_result);
return 0;
}
```
这段代码展示了如何接收用户的输入作为参数传递给`mySin()`来进行运算,并最终显示两种不同方式下所获得的结果以便于观察差异。
阅读全文
相关推荐


















