关于sin x = 1/x!-x/3!+x/5!-x/7!+……的c程序

 

#include  < stdio.h >
#include 
< math.h >
#define  PI 3.1415926

float  a( float  x1,  int  n1)     /* control only one data item value */
{
   
float  s1  =   1.0 ,s2  =   1.0 ,s;
   
int  i;
   
for (i  =   1 ; i  <=   2 * n1 - 1 ; i ++ )
   {
      s1 
*=  x1;
      s2 
*=  i;
   }
   s 
=  s1 / s2;
   
if (n1 % 2   ==   0 return   - s;
   
return  s;
}

void  main( void )
{
   
int  n  =   1 ;
   
float  x, x0, sum  =   0.0 ;
   printf(
" x =  " );
   scanf(
" %f " , & x);

   x0 
=  x * PI / 180.0 ;       /* 转化为弧度 */
   
while (fabs(a(x0, n))  >   0.000001 )   /* 保证精确度 */
   {
      sum 
+=  a(x0, n);
      n
++ ;
   }
   printf(
" sin(x) = %f " , sum);
   getch();
}

关于这个程序的编写,关键是所用数字的类型。以及求sin(x)时,每一项的数据类型。在结合他人的程序和自己的实践,我选择了float型的数据。其中函数float a(float  x1, int  n1)表示的是求每一个子项的值。例如:x/1!,x/2!等的值,n为变量,来控制精确度。如下代码(经过win-tc调试通过); 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值