1、C語言中要編寫sin函數(shù),實質上要利用sin的泰勒公式,然后根據(jù)泰勒公式,將其中的每一項進行分解,最后用循環(huán),累加計算出最終結果。
我們提供的服務有:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、達孜ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的達孜網(wǎng)站制作公司
2、下面用for循環(huán)實現(xiàn)sin的算法,程序代碼如下:
#includestdio.h
#includemath.h
void?main()
{
int??i;
float??x,sum,a,b;??//sum代表和,a為分子,b為分母
char?s;
printf("please?input?x");
scanf("%f",x);
s=1;
sum=0;
a=x;?????//分母賦初值
b=1;?????//分子賦初值
for(i=1;a/b=1e-6;i++)
{
sum=sum+s*a/b;????//累加一項
a=a*x*x;?????//求下一項分子
b=b*2*i*(2*i+1);???//求下一項分母
s*=-1;
}
printf("sum=%f\n",sum);
}
3、? 關于上述程序的幾點說明:上述程序的計算結果精確到小數(shù)點后六位;上述程序運用了sin的泰勒展開式 sin x=x-x^3/3!+x^5/5! ...... ,程序中將sin泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便于每一項的累加。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
二十世紀八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數(shù)名和漢字標識符,一定程度上實現(xiàn)了漢字編程。
C語言sin()用來計算參數(shù)x
的正玄值,然后將結果返回。返回-1
至1
之間的計算結果。
例子:
#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/π
角度轉弧度:用角度乘以π/180
弧度轉角度:用弧度乘以180/π,或者用rtod()函數(shù)
擴展資料:
與sin相似的acos函數(shù)
函數(shù)名:
acos
功
能:計算并返回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的用法
#include stdio.h
#include math.h
#define EX 0.000001
#define PI 3.14159265
int main()
...{
double x=0.0, temp=1.0, sin=0.0;
int i;
printf("Please input a degree:");
scanf("%lf",x);
x=x*PI/180;
temp=x;
i=0 ;
while ( fabs(temp) EX ) ...{
sin += temp;
i += 2;
temp = (-1) * temp*x*x/( (i+1)*(i) );
}
printf("sin(%lf) = %lf ",x,sin);
printf("The number is %d ",i);
return 0;
}
包含頭文件math.h,寫成sin(x);的形式直接調用這個函數(shù)。其中x是double型弧度值。函數(shù)返回一個double值。如有double
x=3.1415926/180*30;,那么printf("sin30°
=
%f\n",sin(x));將輸出sin30°
=
0.500000。
修改建議
您的回答內(nèi)容不完整
知識型提問需要先直接對提問進行回復,開門見山,再對相關知識點進行延伸,如:加油哦!
你拒絕認證吧,這沒有完善的必要了,學過三角函數(shù)的人都能看懂,看了10頁C教科書的也都知道怎么寫了。還要怎樣“開門見山”,怎樣“延伸”?難道還得解釋sin是對邊比斜邊?
加上math.h這個頭文件,另外要使用弧度制。下面是一個非常簡單的例子。
#includeiostream.h
#includemath.h //加上這個頭文件
#define pi 3.1415926
void main()
{
double x=30;
cout"sin("x")="sin(pi*x/180)endl; //化為弧度制
}