为了账号安全,请及时绑定邮箱和手机立即绑定

为什么会输不出结果,求帮助!

为什么会输不出结果,求帮助!

C
一只名叫tom的猫 2023-04-20 19:15:37
用余弦函数(cosx)的幂级数展开式编写程序:(1) 要求从控制台输入x的值,依据上述cosx的幂级数展开式,输出cosx的近似值;(2) 要求计算结果精确到小数点后8位。(3) 注意:不允许使用C标准函数库(math.h)中的余弦函数。#include<stdio.h>#include<math.h>int main(){int n=0;double x,sum=0;printf("please enter x:");scanf("%f",&x);double cosx(double x,int n);do{sum=sum+cosx(x,n);n=n+1;}while(fabs(cosx(x,n))>1e-8);printf("%9.8f\n",sum);return 0;}double cosx(double x,int n){double p;int q;p=pow(x,2*n);int fact(int n);q=fact(2*n);if(n%2)return(-p/q);elsereturn(p/q);}int fact(int n){int ans=1,i;if(n<=1)  return 1;for(i=1;i<=n; ++i)ans*=i;return ans;}
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

cosx函数
  #include<stdio.h>
  #include<math.h>
  int main()
  {
  int n=0;
  double x,sum=0;
  printf("please enter x:");
  scanf("%lf",&x);//
  double cosx(double x,int n);
  do
  {
  sum=sum+cosx(x,n);
  n=n+1;
  }
  while(fabs(cosx(x,n))>1e-8);
  printf("%9.8f\n",sum);
  return 0;
  }
  double cosx(double x,int n)
  {
  double p,q;//
  p=pow(x,2*n);
  double fact(int n);//
  q=fact(2*n);
  if(n%2)
  return(-p/q);
  else
  return(p/q);
  }
  double fact(int n)//
  {
  double ans=1; int i;
  if(n<=1)
  return 1;
  for(i=1;i<=n; ++i)
  ans*=i;
  return ans;
  }

  cosx函数即反余弦函数

  函数y=cosx(x∈[0,π])的反函数叫做反余弦函数,
  记作y=arccosx(x∈[-1,1]).

 


查看完整回答
反对 回复 2023-04-23
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

错误有两类:
1. scanf("%f",&x);由于x是double型,所以应改成scanf("%lf",&x);
2. fact()和cosx()中用int型来计算n!会很快溢出,应改为double型

改后如下,运行正确。
#include<stdio.h>
#include<math.h>
int main()
{
int n=0;
double x,sum=0;
printf("please enter x:");
scanf("%lf",&x);//
double cosx(double x,int n);
do
{
sum=sum+cosx(x,n);
n=n+1;
}
while(fabs(cosx(x,n))>1e-8);
printf("%9.8f\n",sum);
return 0;
}
double cosx(double x,int n)
{
double p,q;//
p=pow(x,2*n);
double fact(int n);//
q=fact(2*n);
if(n%2)
return(-p/q);
else
return(p/q);
}
double fact(int n)//
{
double ans=1; int i;
if(n<=1)  
return 1;
for(i=1;i<=n; ++i)
ans*=i;
return ans;
}


查看完整回答
反对 回复 2023-04-23
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信