用C语言程序算sinX的值

用C语言程序算sinX的值,第1张

#include

#include

/*计算n的阶乘*/

int factor(int n)

{

if(n==1)

return 1

else

return factor(n-1)*n

}

/*得到分子的值*/

double get_numerator(double x,int order)

{

return pow(x,order) //求x^order

}

/*得到分母的值*/

double get_denominator(int n)

{

return factor(n) //求n的阶乘

}

/*获得第n项的符号,即(-1)^n*/

int get_symbol(int n)

{

if(n%2 ==0) //n是偶数

return 1

else

return -1

}

int main()

{

int i

double x

double sin_x=0

double tmp=0

printf("please input the x:\n")

scanf("滑宏%lf",&x)

for(i=0i++)

{

tmp=sin_x //暂时保存上一步得到的sin值

sin_x += get_numerator(x,2*i+1)/get_denominator(2*i+1)*get_symbol(i)

if(fabs(sin_x-tmp)<1e-6) //精度满足要求

break

}

printf("sin(%lf)=%lf\n",x,sin_x)

return 0

} /***********************************************************************

学好c语言,首先应该把语言的语法学好,这也是基础。尤其是注意指针部分,可以说这是c语言的精髓,也是c语言能够直接 *** 作内存的犀利之处。

其次,应该多练代码,并且注意代码的可读性,规范性。

最好,能够亲身用c语言参加某个项目实践,毕竟实践出真知。

至于之后c++或者java的学习,要看自己的发展规划了。不过学信凳册好c语言,绝对对你今后学习其他语言有很大粗败帮助。

*************************************************************************/

修改了一下。灶烂 用 前后项的递推: c=c*x*x/(float)i/液镇(float)(i-1)

#include <stdio.h>

#include <math.h>

int main(){

double x,a,b=1,c=1,sum

int i,count=1

scanf("%lf",&x)

sum=x

for (i=3fabs(c)>1e-05i=i+2){

c=c*x*x/(float)i/(float)(i-1)

b= -b

sum=sum + c*b

count++

}

printf("闹辩粗%.3lf %d\n",sum,count)

return 0

}

我刚回答了一个类似的问题;塌散

http://zhidao.baidu.com/question/390614100753495925.html?oldq=1

直接把上面的源代码给你吧:

#include<stdio.h>

#include<math.h>乱斗

int main()

{

double x,t,b=1,c=1,s=0, s0=0

int i,k=1,h=1

printf("请输入Sin(x)中的x:")

scanf("%lf",&x)

do{

if ( k%2 ) h=1

else h=-1.0

c=1

b=1

for(i=1i<=2*k-1i++)

{

b = b*i

c = c*x

}

s = s+h*c/b

t=fabs(s-s0)

s0=s//记录上次团陪氏的计算结果

k++

} while(t>=0.0000001)

printf("Sin(%lf) = %lf",x,s)

return 0

}

不过,你判断输入的x>360的这种做法很好啊。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12307132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存