當前位置:首頁 » 編程語言 » c語言sin函數實現
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言sin函數實現

發布時間: 2022-08-16 05:34:23

Ⅰ 用c語言求正弦值

1、C語言中要編寫sin函數,實質上要利用sin的泰勒公式,然後根據泰勒公式,將其中的每一項進行分解,最後用循環,累加計算出最終結果。


2、下面用for循環實現sin的演算法,程序代碼如下:

#include<stdio.h>

#include<math.h>


voidmain()


{


inti;


floatx,sum,a,b;//sum代表和,a為分子,b為分母


chars;


printf("pleaseinputx");


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 ",sum);


}

3、 關於上述程序的幾點說明:上述程序的計算結果精確到小數點後六位;上述程序運用了sin的泰勒展開式 sin x=x-x^3/3!+x^5/5! ...... ,程序中將sin泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便於每一項的累加。

Ⅱ 如何用C語言中專門的數學演算法實現正弦,餘弦函數的計算

頭文件包含。math.h
cos
:餘弦函數
函數原型:double
cos(double
x);
頭文件:#include<math.h>
是否是標准函數:是
函數功能:求x的餘弦值,這里,x為弧度。
返回值:計算結果的雙精度值。
常式如下:
求cosx。
#include
<stdio.h>
#include
<math.h>
int
main(void)
{
double
result;
double
x
=
M_PI;
result
=
cos(x);
printf("cos(PI)
is
%lf\n",
result);
return
0;
}
sin:正弦函數
函數原型:double
sin(double
x);
頭文件:#include<math.h>
是否是標准函數:是
函數功能:求x的正弦值,這里,x為弧度。
返回值:計算結果的雙精度值。
常式如下:
求sinx。
#include
<stdio.h>
#include
<math.h>
int
main(void)
{
float
x;
x=M_PI/2;
printf("sin(PI/2)=%f",sin(x));
getchar();
return
0;
}

Ⅲ 怎樣用c語言編寫一個程序用來輸出正弦函數值

首先:程序應該這樣改!
#include
#include
main()
{
double
n;
double
b,c;
scanf("%lf",&n);
b=sin(n);
c=cos(n);
printf("%.2lf\n%.2lf",b,c);
return
0;
}
其次,這里的n是弧度值,你說的90度應該輸入的是pi/2,而不是90,如果希望輸入90的話,那就這樣改!
#include
#include
main()
{
int
s;
double
n,b,c;
scanf("%d",&s);
n=3.1415926*(s/180.0);
b=sin(n);
c=cos(n);
printf("%.2lf\n%.2lf",b,c);
return
0;
}

Ⅳ C語言里sin函數和cos函數的調用

C語言里sin函數和cos函數是C標准數學函數庫中的函數,調用需要引入math.h頭文件。

一、sin()函數描述:

C 庫函數 double sin(double x) 返回弧度角 x 的正弦。sin() 函數的聲明:double sin(double x)。

參數:x -- 浮點值,代表了一個以弧度表示的角度。

返回值:該函數返回 x 的正弦。

二、cos() 函數描述:

cos() 函數的功能是求某個角的餘弦值。cos()函數的聲明:double cos(double x)。

參數:x -- 浮點值,代表了一個以弧度表示的角度。

返回值:該函數返回 x 的餘弦。

(4)c語言sin函數實現擴展閱讀:

相關的三角函數:

double asin (double); 結果介於[-PI/2,PI/2]

double acos (double); 結果介於[0,PI]

double atan (double); 反正切(主值),結果介於[-PI/2,PI/2]

double atan2 (double,double); 反正切(整圓值),結果介於[-PI,PI]

Ⅳ 怎麼用c語言編正弦函數計算

  1. 樓上的各位已經提到了scanf輸入控制與目標數據類型不匹配的問題,即應改為:scanf("%f",&n);

  2. 另外三樓有提到說角度與弧度的問題,就是說sin()和cos()輸入需要保證為弧度,所以你需要轉換一下,比如你這個90度就應該約是1.57。

  3. 其實我覺得應該弄清楚的是為什麼在輸入控制錯誤的情況下,還會產生這樣的結果。

    這是因為輸入控制錯誤,導致n的值沒有變化,也就是說後邊計算正弦餘弦的時候也是計算的n的初始值。你可以在先不改正輸入控制的前提下,在輸入語句前加一個輸出語句,看看n值為多少,如果沒猜錯的話,應該是0,進而計算的結果也當是正確的。也許你要問了,不是說局部變數自動變數未初始化的話值是隨機值么,怎麼會是0呢?是的,我也很納悶,也許適合具體的編譯環境有關吧,不同的編譯環境對這種情況可能處理會有所不同吧,留待自己去探究咯~

    希望能幫到你~歡迎交流~

Ⅵ C語言sin怎麼用

C語言sin()用來計算參數x 的正玄值,然後將結果返回。返回-1 至1 之間的計算結果。

例子:

#include <math.h>

main(){

double answer = sin(0.5);

printf("sin(0.5) = %f ", answer);

}

執行

sin(0.5) = 0.479426

C語言sin():

sin()原型:double sin(double x)

sin()角度與弧度:

π=180°

1°=π/180

1(rad)=180/π

角度轉弧度:用角度乘以π/180

弧度轉角度:用弧度乘以180/π,或者用rtod()函數

(6)c語言sin函數實現擴展閱讀:

與sin相似的acos函數

函數名: acos

功 能:計算並返回arccos(x)值、要求-1<=X<=1

函數與形參類型:

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 ", x, result);

return 0;

}

Ⅶ 誰能給個c語言到sin()函數到實現源碼

#include<stdio.h>
#include<math.h>

doublesin(double);
doublenResult(double,double);

intmain()
{
doublex=0;
scanf("%lf",&x);
printf("sin(%lf)=%lf ",x,sin(x));
return0;
}

doublesin(doublex)
{
//sin(x)=x-x^3/3!+x^5/5!-x^7/7!+……+(-1)(n^2n+1)/(2n+1)!+……
inti=0;
doubleresult=0,n=0;
while(fabs(n=nResult(x,2*++i-1))>0e-5)//絕對值大於10^-5次方就循環
result+=(i%2==1)?n:-n;
returnresult;
}

doublenResult(doublex,doublen)
{
//(n^2n+1)/(2n+1)!也就是n/1*n/2*n/3*n/4*.....n/(2n+1)
returnn==1?x:nResult(x,n-1)*x/n;
}

Ⅷ 對sin函數求"不定積分",用C語言如何實現

1.
c語言中要編寫sin函數,實質上要利用sin的泰勒公式,然後根據泰勒公式,將其中的每一項進行分解,最後用循環,累加計算出最終結果
2.
下面用for循環實現sin的演算法,程序代碼如下:
#include
#include
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.
關於上述程序的幾點說明:上述程序的計算結果精確到小數點後六位;上述程序運用了sin的泰勒展開式
sin
x=x-x^3/3!+x^5/5!
......
,程序中將sin泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便於每一項的累加

Ⅸ 如何用c語言的數組來實現一個正弦函數

1、C語言中要編寫sin函數,實質上要利用sin的泰勒公式,然後根據泰勒公式,將其中的每一項進行分解,最後用循環,累加計算出最終結果。
2、下面用for循環實現sin的演算法,程序代碼如下:

#include<stdio.h>#include<math.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、 關於上述程序的幾點說明:上述程序的計算結果精確到小數點後六位;上述程序運用了sin的泰勒展開式 sin x=x-x^3/3!+x^5/5! ...... ,程序中將sin泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便於每一項的累加。

Ⅹ c語言sin程序(好答案追加分數)

程序沒錯!!!!!
我也在TC上運行正確!!
函數sin()的輸入的精度足夠高,要不假設它的精度才精確到小數點後2位,你想要4位的就不行的.實際其精確度也是有限的.
輸出的雙精度,你可以強制轉化,如:
int
n;
n=(int)(sin(x));
這樣不是可以變成int了.
但這樣似乎沒用,不是0就是1了.
當然了,x也可以是整數.計算時,系統自動進行將x轉為雙精度型.
程序結尾的getch();語句作用:
為了讓你很好的看程序結果,
不讓程序提前結束,
當然不用也可以看,但是上面不是顯示"按任意鍵結束"嗎?
當你想看結果時,不小心按了哪個鍵看不到了.
加上getch();後,這個函數的作用是從鍵盤(控制台)上接受一個字元.
這樣加了一次保險,不小心按一次,還可以看.就象帶保險套一樣,按多了一次,也就會結束了.
一句話,它就是為了讓你安全看程序結果.