编程论坛
→
C语言论坛
c语言 利用泰勒级数计算sinx的值
yogurtmai
发布于
2016-11-03 22:52,
19962 次点击
利用泰勒级数计算sinx的值,要求最后一项的绝对值小于,并统计出此时累加了多少项。请用“利用前项来计算后项”的方法计算累加项,不要使用pow函数编写程序
程序的运行结果示例1:
Input x:
3↙
sin(x)=0.141,count=9
程序的运行结果示例2:
Input x:
10↙
sin(x)=-0.544,count=18
输入格式: "%f"
输出格式:
输入提示信息:"Input x:\n"
输出格式:"sin(x)=%.3f,count=%d\n"
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
#include
#include
int f1(int n)
{
int a ,b=1;
for(a=1;a<=n;a++)
{
b=b*a;
}
return b;
}
main()
{
int d=1,c=3;
float a,b=0,i,e;
printf("Input x:\n",a);
scanf("%f",&a);
e=a*a*a;
b=a;
do
{
i=e/f1(c);
if((d+1)%2==0)
i=-i;
b=b+i;
d++;
e=e*a*a;
c=c+2;
}while(fabs(i)>=1e-5);
printf("sin(x)=%.3f,count=%d\n",b,d);
}
用例测试结果 运行时间 占用内存 提示 得分
用例1未通过 -- 0kb 运行时间超出限制 0
用例2未通过 -- 0kb 运行时间超出限制 0
本文介绍如何使用C语言通过泰勒级数计算sinx的值,要求最后一项的绝对值小于1e-5,并统计计算了多少项。程序包含一个用于计算阶乘的辅助函数f1,以及主函数中的do-while循环来逐步逼近sinx的值。然而,给出的程序在给定的测试用例中未能在限定时间内完成计算。
7851

被折叠的 条评论
为什么被折叠?



