第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么會輸不出結(jié)果,求幫助!

為什么會輸不出結(jié)果,求幫助!

C
一只名叫tom的貓 2023-04-20 19:15:37
用余弦函數(shù)(cosx)的冪級數(shù)展開式編寫程序:(1) 要求從控制臺輸入x的值,依據(jù)上述cosx的冪級數(shù)展開式,輸出cosx的近似值;(2) 要求計算結(jié)果精確到小數(shù)點后8位。(3) 注意:不允許使用C標準函數(shù)庫(math.h)中的余弦函數(shù)。#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條經(jīng)驗 獲得超8個贊

cosx函數(shù)
  #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函數(shù)即反余弦函數(shù)

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

 


查看完整回答
反對 回復 2023-04-23
?
慕碼人2483693

TA貢獻1860條經(jīng)驗 獲得超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 關注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號