如何用C语言写三角函数 20
新手+菜鸟求救!!!!!!!!!!!不用<math.h>头文件,怎么写?我用的是泰勒公式#include<stdio.h>voidmain(void){intk;floa...
新手+菜鸟求救!!!!!!!!!!!
不用<math.h>头文件,怎么写?
我用的是泰勒公式
#include <stdio.h>
void main(void)
{
int k;
float x;
double z=1;
scanf("%f",&x);
for(k=1000;k>=1;k--)
{
z=1-z*x*x/(2*k*(2*k+1));
}
z=z*x;
printf("%lf",z);
}
弧度到前40都比较精确,但是上50之后就非常不精确了,结果非常大?怎么改进啊?谢谢。 展开
不用<math.h>头文件,怎么写?
我用的是泰勒公式
#include <stdio.h>
void main(void)
{
int k;
float x;
double z=1;
scanf("%f",&x);
for(k=1000;k>=1;k--)
{
z=1-z*x*x/(2*k*(2*k+1));
}
z=z*x;
printf("%lf",z);
}
弧度到前40都比较精确,但是上50之后就非常不精确了,结果非常大?怎么改进啊?谢谢。 展开
4个回答
展开全部
求sin的:参考下
#include<stdio.h>
void main()
{
double x,a,b,sum=0;
printf("请输入x的弧度值:\n");
scanf("%lf",&x);
int i,j,count=0;
for(i=1;;i+=2)
{
count++;
a=b=1;
for(j=1;j<=i;j++)
{
a*=x;
b*=(double)j;
}
if(a/b<0.0000001) break;
else
{
if(count%2==0)
sum-=a/b;
else sum+=a/b;
}
}
printf("%lf\n",sum);
}
#include<stdio.h>
void main()
{
double x,a,b,sum=0;
printf("请输入x的弧度值:\n");
scanf("%lf",&x);
int i,j,count=0;
for(i=1;;i+=2)
{
count++;
a=b=1;
for(j=1;j<=i;j++)
{
a*=x;
b*=(double)j;
}
if(a/b<0.0000001) break;
else
{
if(count%2==0)
sum-=a/b;
else sum+=a/b;
}
}
printf("%lf\n",sum);
}
展开全部
只能改公式了,提高公式的精度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这玩意儿不能硬来的,要先用诱导公式把x的绝对值搞小一点,否则一定会出问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
帮你更正一下:
int
main()
{
const
double
pi=3.14;
//定义pi的值
double
a;
a=sin(45*pi/180);
//角度转化为弧度
printf("%f",a);
//printf的正确格式
}
int
main()
{
const
double
pi=3.14;
//定义pi的值
double
a;
a=sin(45*pi/180);
//角度转化为弧度
printf("%f",a);
//printf的正确格式
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |