[C语言]计算sin值填空 :阅读下面程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。然后上机运行程序。利用公式,计算sin x(x为弧度值)的值,直到最后一项的绝对值小于。。。

阅读下面程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。然后上机运行程序。
   利用计算sin x(x为弧度值)的值,直到最后一项的绝对值小于10-5时为止,输出e的值并统计累加的项数。

#include <stdio.h>
#include <math.h>
int main()
{
   int n = 1, count = 1;
   float x;
   double sum, term;
   printf("Input x:");
   scanf("%f",___①___);
   sum = x;
   term = x;
   do{
      term = ___②___;
      sum = sum + term;
      n = n + 2;
      ___③___;
   }while (___④___);
   printf("sin(x) = %.6f, count = %d\n", sum, count);
   return 0;
}

①很容易填,根据上面的printf("Input x:"),即可知①为&x

我们先来看③,do{}whlie中为每次的迭代变化,而其中少了一个已经定义的变量count,又因为由题意可知count为项数计数,所以每次只增加1,得③ count=count+1

④为终止条件,题中已给出,所以写出题中所给条件即可

最后来看②,term为每次相加的项,观察找出每项与前一项的关系即可,发现每一项都在前一项的基础上乘了一个x的平方,又除以了其中n+1和n+2的积(即阶乘),最后,每一项的正负号不同。

所以把以上结合起来,最终填完空的代码为:

#include <stdio.h>
#include <math.h>
int main()
{
   int n = 1, count = 1;
   float x;
   double sum, term;
   printf("Input x:");
   scanf("%f",&x);
   sum = x;
   term = x;
   do{
      term = (term*x*x)/((n+1)*(n+2))*(-1);
      sum = sum + term;
      n = n + 2;
      count = count + 1;
   }while (fabs(term)>1e-5);
   printf("sin(x) = %.6f, count = %d\n", sum, count);
   return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值