利用sinx=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-…,计算sinx(x为弧度值)的值,直到最后一项的绝对值小于10-5时为
利用sinx=x-x3/3!+x5/5!-x7/7!+x9/9!-…,计算sinx(x为弧度值)的值,直到最后一项的绝对值小于10-5时为止,输出sinx的值并统计累加的...
利用sinx=x-x3/3!+x5/5!-x7/7!+x9/9!-…,计算sinx(x为弧度值)的值,直到最后一项的绝对值小于10-5时为止,输出sinx的值并统计累加的项数。
#include<stdio.h>
#include<math.h>
main()
{ int n=1,count=1;
float x; double sum,term;
printf("Input x:"); scanf("%f",&x);
sum=x; term=x;
do{
term=①;
sum=sum+term;
n=n+2;
count++;
}while( ②);
printf("sin(x)=%f,count=%d\n",sum,count); } 展开
#include<stdio.h>
#include<math.h>
main()
{ int n=1,count=1;
float x; double sum,term;
printf("Input x:"); scanf("%f",&x);
sum=x; term=x;
do{
term=①;
sum=sum+term;
n=n+2;
count++;
}while( ②);
printf("sin(x)=%f,count=%d\n",sum,count); } 展开
1个回答
展开全部
追问
term*x*x是什么意思?
不应该是term^(n+2)吗?
我感觉把((n+1)*(n+2))换成(n+2)更好呀
追答
你看这个级数展开式,如果只看x的话,第一项是x,第二项是x³,第三项是x^5,每一项都是前一项再乘x²,所以填term*x*x;然后只看分母,第一项是1的阶乘,第二项是3的阶乘,第三项是5的阶乘,每一项都是前一项乘(n+1)*(n+2),所以这么填,不是硬算每一项,而是递推着算,这样写符合你的题目。别忘了第一个空还要写一个负号。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询