首先,你的測試輸入和測試輸出的數(shù)據(jù)是對應(yīng)不上的,你寫錯(cuò)信息了!
10多年的那曲網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整那曲建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“那曲網(wǎng)站設(shè)計(jì)”,“那曲網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
輸入 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)開關(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)條件,很簡潔。因?yàn)楹瘮?shù)傳入的是形參,也不會(huì)對main的變量造成影響。
for?(;?n--;)
{
p?*=?x;
}
return?p;
}
//??計(jì)算n!
double?fact(int?n)
{
double?f?=?1;
//??這樣的循環(huán)條件,很簡潔。因?yàn)楹瘮?shù)傳入的是形參,也不會(huì)對main的變量造成影響。
for?(;?n;)
{
f?*=?n--;
}
return?f;
}
測試截圖:(分別測試了角度為 180度、90度、45度的弧度值)
輸入和輸出語句,你不想要這么多的提示信息的話,自己修改一下就可以了。
如有幫助,煩請點(diǎn)采納,謝謝!
#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īng)該把語言的語法學(xué)好,這也是基礎(chǔ)。尤其是注意指針部分,可以說這是c語言的精髓,也是c語言能夠直接操作內(nèi)存的犀利之處。
其次,應(yīng)該多練代碼,并且注意代碼的可讀性,規(guī)范性。
最好,能夠親身用c語言參加某個(gè)項(xiàng)目實(shí)踐,畢竟實(shí)踐出真知。
至于之后c++或者java的學(xué)習(xí),要看自己的發(fā)展規(guī)劃了。不過學(xué)好c語言,絕對對你今后學(xué)習(xí)其他語言有很大幫助。
*************************************************************************/
#include?stdio.h
#include?math.h
int?main()
{
double?n;?//sin?cos是函數(shù),不能定義成變量
scanf("%lf",n);
n=sin(n);?//求n的sin()值,并返回給n
printf("%lf\n",n);//輸出n
return?0;
}
C語言sin()用來計(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語言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語言中sin和cos的用法
math.h里的三角函數(shù)用的單位是弧度,你貌似錯(cuò)在這里。 答案補(bǔ)充 Example
/* SINCOS.C: This program displays the sine, hyperbolic
* sine, cosine, and hyperbolic cosine of pi / 2.
*/
#include math.h
#include stdio.h
void main( void )
{
double pi = 3.1415926535;
double x, y;
x = pi / 2;
y = sin( x );
printf( "sin( %f ) = %f\n", x, y );
y = sinh( x );
printf( "sinh( %f ) = %f\n",x, y );
y = cos( x );
printf( "cos( %f ) = %f\n", x, y );
y = cosh( x );
printf( "cosh( %f ) = %f\n",x, y );
} 答案補(bǔ)充 Output
sin( 1.570796 ) = 1.000000
sinh( 1.570796 ) = 2.301299
cos( 1.570796 ) = 0.000000
cosh( 1.570796 ) = 2.509178
Parameter
x
Angle in radians