修改了一下。 用 前后項(xiàng)的遞推: c=c*x*x/(float)i/(float)(i-1);
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、古雷港網(wǎng)站維護(hù)、網(wǎng)站推廣。
#include stdio.h
#include math.h
int main(){
double x,a,b=1,c=1,sum;
int i,count=1;
scanf("%lf",x);
sum=x;
for (i=3; fabs(c)1e-05;i=i+2){
c=c*x*x/(float)i/(float)(i-1);
b= -b;
sum=sum + c*b;
count++;
}
printf("%.3lf %d\n",sum,count);
return 0;
}
C語(yǔ)言sin()用來(lái)計(jì)算參數(shù)x
的正玄值,然后將結(jié)果返回。返回-1
至1
之間的計(jì)算結(jié)果。
例子:
#include
math.h
main(){
double
answer
=
sin(0.5);
printf("sin(0.5)
=
%f\n",
answer);
}
執(zhí)行
sin(0.5)
=
0.479426
C語(yǔ)言sin():
sin()原型:double
sin(double
x)
sin()角度與弧度:
π=180°
1°=π/180
1(rad)=180/π
角度轉(zhuǎn)弧度:用角度乘以π/180
弧度轉(zhuǎn)角度:用弧度乘以180/π,或者用rtod()函數(shù)
擴(kuò)展資料:
與sin相似的acos函數(shù)
函數(shù)名:
acos
功
能:計(jì)算并返回arccos(x)值、要求-1=X=1
函數(shù)與形參類型:
double
acos(x)
double
x;
程序例:
#include
stdio.h
#include
math.h
int
main(void)
{
double
result;
double
x
=
0.5;
result
=
acos(x);
printf("The
arc
cosine
of
%lf
is
%lf\n",
x,
result);
return
0;
}
參考資料:CSDN博客頻道-C語(yǔ)言中sin和cos的用法
#include
#include
/*計(jì)算n的階乘*/
int factor(int n)
{
if(n==1)
return 1;
else
return factor(n-1)*n;
}
/*得到分子的值*/
double get_numerator(double x,int order)
{
return pow(x,order); //求x^order
}
/*得到分母的值*/
double get_denominator(int n)
{
return factor(n); //求n的階乘
}
/*獲得第n項(xiàng)的符號(hào),即(-1)^n*/
int get_symbol(int n)
{
if(n%2 ==0) //n是偶數(shù)
return 1;
else
return -1;
}
int main()
{
int i;
double x;
double sin_x=0;
double tmp=0;
printf("please input the x:\n");
scanf("%lf",x);
for(i=0;;i++)
{
tmp=sin_x; //暫時(shí)保存上一步得到的sin值
sin_x += get_numerator(x,2*i+1)/get_denominator(2*i+1)*get_symbol(i);
if(fabs(sin_x-tmp)1e-6) //精度滿足要求
break;
}
printf("sin(%lf)=%lf\n",x,sin_x);
return 0;
} /***********************************************************************
學(xué)好c語(yǔ)言,首先應(yīng)該把語(yǔ)言的語(yǔ)法學(xué)好,這也是基礎(chǔ)。尤其是注意指針部分,可以說(shuō)這是c語(yǔ)言的精髓,也是c語(yǔ)言能夠直接操作內(nèi)存的犀利之處。
其次,應(yīng)該多練代碼,并且注意代碼的可讀性,規(guī)范性。
最好,能夠親身用c語(yǔ)言參加某個(gè)項(xiàng)目實(shí)踐,畢竟實(shí)踐出真知。
至于之后c++或者java的學(xué)習(xí),要看自己的發(fā)展規(guī)劃了。不過(guò)學(xué)好c語(yǔ)言,絕對(duì)對(duì)你今后學(xué)習(xí)其他語(yǔ)言有很大幫助。
*************************************************************************/
首先,你的測(cè)試輸入和測(cè)試輸出的數(shù)據(jù)是對(duì)應(yīng)不上的,你寫錯(cuò)信息了!
輸入 3.1415026, 3 的時(shí)候,輸出才是 -0.07522 。
好了,正確的參考代碼如下:
#include?stdio.h
double?power(double?x,?int?n);?//?計(jì)算乘方的函數(shù)
double?fact(int?n);????????????//??計(jì)算階乘的函數(shù)
int?main(int?argc,?char?const?*argv[])
{
double?x,?s;
int?n;
int?sign?=?1;?//正負(fù)號(hào)開(kāi)關(guān)變量,初始狀態(tài)為正
printf("Please?input?a?decimal?number?x?,?a?postive?int?number?n??:\n");
scanf("%lf%d",?x,?n);
for?(int?i?=?0;?i?=?n;?i++)
{
s?+=?sign?*?power(x,?2?*?i?+?1)?/?fact(2?*?i?+?1);
sign?=?-sign;
}
printf("x?=?%g,?n?=?%d,?s?=?%.5lf?\n",?x,?n,?s);
return?0;
}
//計(jì)算x^n
double?power(double?x,?int?n)
{
double?p?=?1;
//??這樣的循環(huán)條件,很簡(jiǎn)潔。因?yàn)楹瘮?shù)傳入的是形參,也不會(huì)對(duì)main的變量造成影響。
for?(;?n--;)
{
p?*=?x;
}
return?p;
}
//??計(jì)算n!
double?fact(int?n)
{
double?f?=?1;
//??這樣的循環(huán)條件,很簡(jiǎn)潔。因?yàn)楹瘮?shù)傳入的是形參,也不會(huì)對(duì)main的變量造成影響。
for?(;?n;)
{
f?*=?n--;
}
return?f;
}
測(cè)試截圖:(分別測(cè)試了角度為 180度、90度、45度的弧度值)
輸入和輸出語(yǔ)句,你不想要這么多的提示信息的話,自己修改一下就可以了。
如有幫助,煩請(qǐng)點(diǎn)采納,謝謝!