中易网

c程求sinx的近似值,希望大神帮我看看,能通过,就是一运行就卡死dev环境 本人小白,希望能讲的明白一点

答案:2  悬赏:0  
解决时间 2021-01-18 13:53
  • 提问者网友:欺烟
  • 2021-01-17 20:45
c程求sinx的近似值,希望大神帮我看看,能通过,就是一运行就卡死dev环境 本人小白,希望能讲的明白一点
最佳答案
  • 二级知识专家网友:像个废品
  • 2021-01-17 22:08
#include 
#include 
double jie(double n)
{
int a;
double sum1=1;//既然函数类型为double型,返回的是sum1的值,sum1应该是double型
for(a=1;a<=n;a++)
sum1=sum1*a;
return sum1;
}
double cif(double n,double b)
{
int a;
sum2=1;//既然函数类型为double型,返回的是sum2的值,sum2应该是double型for(a=1;a<=n;a++)
sum2=sum2*b;
return sum2;
}
int main()
{
double t,b,x,sum=0;//没有用到变量a,去掉 
printf("输入一个弧度数x
");
scanf("%lf",&x);//读取格式有误,x前应有&
for(t=1,b=2*t-1;cif(b,x)/jie(b)>=1E-7;t++,b=2*t-1)//cif(b,x)、jie(b)都为正,不需要fabs。另外,<=应该是>=
{
int z=(int)t;//t值不定的情况下,不能复制给z,移到此处
if((z%2)!=0)//t为奇
sum=sum+cif(b,x)/jie(b);
else
sum=sum-cif(b,x)/jie(b);
}
printf("sinx为:%f",sum);
return 0;
}这个程序实在是太繁琐了。提供本题程序如下:
#include 
#include 
int main()
{
double i,x,k,sum;
scanf("%lf",&x);
k=sum=x;
for(i=1;abs(k)>=1e-7;i++)
{
k*=-x*x/(i*2*(i*2+1));
sum+=k;
}
printf("%lf",sum);
return 0;
}运行示例:

全部回答
  • 1楼网友:思契十里
  • 2021-01-17 23:27
scanf("%lf",x);
这句话明显不对,应该是 &x,手头没有编译器,别的问题没看。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息