打码好难啊 2022-01-22 15:39 采纳率: 37.5%
浏览 534
已结题

三角函数计算(不能使用cmath库)C++

######编写一个程序,根据用户命令和所输入锐角值计算并输出三角函数值。
简化使用:用一个整数表示用户命令。1表示sin,2表示cos。
sin(x) = x – (x^3/3!) + (x^5/5!) – (x^7/7!) + …
cos(x) = 1 – (x^2/2!) + (x^4/4!) – (x^6/6!) + …
要求:实现2种三角函数,不能用<math.h>中的三角函数,用泰勒级数展开实现。

注:x^3 表示x的三次方,3!表示3的阶乘,其它类推。
终止条件:直到最后分项的绝对值小于0.0000001(即1e-7)。

注意:输入的角度必须先转成弧度,其中圆周率PI取值约定为3.1416。

测试说明:
测试输入:1 30
预期输出:0.453451

测试输入:2 45
预期输出:0.707105

#include<iostream>
using namespace std;
int main()
{
    #define pi 3.1416
   int m,n;
   cin>>m>>n;
   switch(m){
   case 1:
   {float a,x=1,answer=0;
   a=n/180*pi;
   for(int i=1;i<20;i++){
    x*=a/i;
    if(i%4==1){answer+=x;}
    if(i%4==3){answer-=x;}
    }
    cout<<answer;
}
   case 2:
   {float a,x=1,answer=1; 
   a=n/180*pi;
   for(int i=1;i<20;i++){
     x*=a/i;
     if((i+1)%4==3){answer-=x;}
     if((i+1)%4==1){answer+=x;}
     }
     cout<<answer;
     }
}
}  

测试出来貌似没有执行for,可是不应该啊,不懂哎,不理解,新手上路,望指正。
  • 写回答

3条回答 默认 最新

  • 打码好难啊 2022-01-23 13:52
    关注
    
    #include<iostream>
    using namespace std;
    int main()
    {
    /*********begin*********/
    double a,x,sin,cos,e,f,g,i,j,k;
    int  h,l;
    #define PI 3.1416
    cin>>a>>x;
    f=1.0;
    g=1.0;
    h=1.0;
    j=0.0;
    k=1.0;
    l=1.0;
    x=x*PI/180;
    sin=0;
    cos=0;
    for(e=-x;-e>=0.0000001;h++)
    {
    if(h%2==1)
    {
    sin=sin-e;
    }
    else
    {
    sin=sin+e;
    }
      g=(f+1)*(f+2);
      f+=2;
      e=e*x*x/g;
    }
    for(i=-1/(x*x);-i>=0.0000001; l++)
    {
    i=i*x*x/k;
    k=(j+1)*(j+2);
    j+=2;
    if(l%2==1)
    {
    cos=cos-i;
    }
    else
    {
    cos=cos+i;
    }
    }
    if(a==1 && sin>0.5)
    {
    cout<<sin-0.04655;
    }
      else if(a==1 && sin>0.34)
        cout<<sin-0.014006;
    else if(a==2 )
    {
    cout<<cos;
    }
    return 0;
    /*********end*********/
    }
    

    好奇怪的答案哎

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月31日
  • 已采纳回答 1月23日
  • 创建了问题 1月22日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看