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

c語言求正弦函數公式

發布時間: 2022-11-07 13:52:02

⑴ 用c語言編寫程序求正弦

好像可以運行啊,你用的是什麼編譯器?我用visual C++6.0測試通過!
另外你既然用到了getch()函數,最好在開頭加一下包含頭文件#include <conio.h>

其他的沒什麼錯誤了,我已經測試過了,運行結果也是正確的,當然了運行的時候你要注意x是弧度表示的,而不是角度。

⑵ C語言 求sin值

首先,你的測試輸入和測試輸出的數據是對應不上的,你寫錯信息了!

輸入 3.1415026, 3 的時候,輸出才是 -0.07522 。

好了,正確的參考代碼如下:

#include<stdio.h>

doublepower(doublex,intn);//計算乘方的函數
doublefact(intn);//計算階乘的函數

intmain(intargc,charconst*argv[])
{
doublex,s;
intn;
intsign=1;//正負號開關變數,初始狀態為正
printf("Pleaseinputadecimalnumberx,apostiveintnumbern: ");
scanf("%lf%d",&x,&n);

for(inti=0;i<=n;i++)
{
s+=sign*power(x,2*i+1)/fact(2*i+1);
sign=-sign;
}

printf("x=%g,n=%d,s=%.5lf ",x,n,s);
return0;
}

//計算x^n
doublepower(doublex,intn)
{
doublep=1;
//這樣的循環條件,很簡潔。因為函數傳入的是形參,也不會對main的變數造成影響。
for(;n--;)
{
p*=x;
}
returnp;
}

//計算n!
doublefact(intn)
{
doublef=1;
//這樣的循環條件,很簡潔。因為函數傳入的是形參,也不會對main的變數造成影響。
for(;n;)
{
f*=n--;
}
returnf;
}

測試截圖:(分別測試了角度為 180度、90度、45度的弧度值)

⑶ C語言求正弦函數值

sin(-a)=-sin(a)
cos(-a)=cos(a)
sin(2π-a)=cos(a)
cos(2π-a)=sin(a)
sin(2π+a)=cos(a)
cos(2π+a)=-sin(a)
sin(π-a)=sin(a)
cos(π-a)=-cos(a)
sin(π+a)=-sin(a)
cos(π+a)=-cos(a)
tgA=tanA=sinAcosA
2.兩角和與差的三角函數
sin(a+b)=sin(a)cos(b)+cos(α)sin(b)
cos(a+b)=cos(a)cos(b)-sin(a)sin(b)
sin(a-b)=sin(a)cos(b)-cos(a)sin(b)
cos(a-b)=cos(a)cos(b)+sin(a)sin(b)
tan(a+b)=tan(a)+tan(b)1-tan(a)tan(b)
tan(a-b)=tan(a)-tan(b)1+tan(a)tan(b)
3.和差化積公式
sin(a)+sin(b)=2sin(a+b2)cos(a-b2)
sin(a)?sin(b)=2cos(a+b2)sin(a-b2)
cos(a)+cos(b)=2cos(a+b2)cos(a-b2)
cos(a)-cos(b)=-2sin(a+b2)sin(a-b2)
4.積化和差公式 (上面公式反過來就得到了)
sin(a)sin(b)=-12?[cos(a+b)-cos(a-b)]
cos(a)cos(b)=12?[cos(a+b)+cos(a-b)]
sin(a)cos(b)=12?[sin(a+b)+sin(a-b)]
5.二倍角公式
sin(2a)=2sin(a)cos(a)
cos(2a)=cos2(a)-sin2(a)=2cos2(a)-1=1-2sin2(a)
6.半形公式
sin2(a2)=1-cos(a)2
cos2(a2)=1+cos(a)2
tan(a2)=1-cos(a)sin(a)=sina1+cos(a)
7.萬能公式
sin(a)=2tan(a2)1+tan2(a2)
cos(a)=1-tan2(a2)1+tan2(a2)
tan(a)=2tan(a2)1-tan2(a2)
8.其它公式(推導出來的 )
a?sin(a)+b?cos(a)=a2+b2sin(a+c) 其中 tan(c)=ba
a?sin(a)-b?cos(a)=a2+b2cos(a-c) 其中 tan(c)=ab
1+sin(a)=(sin(a2)+cos(a2))2
1-sin(a)=(sin(a2)-cos(a2))2
csc(a)=1sin(a)

sec(a)=1cos(a)

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

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

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

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

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

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

⑸ 用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語言中正弦函數

doublesin(doublex);

sin參數為double類型,返回值也為double

#include<stdio.h>
#include<math.h>
intmain()
{
constdoublepi=3.1415926;
doubled,e;
scanf("%f",&d);
e=sin(2*pi*d/63.84);
printf("%lf ",e);
return0;
}

⑺ C語言編程求正弦,急需大神!!、

首先 你定義了double類型 而scanf();中用的是%f。
float型對應用%f
double型對應用%lf
這是第一個錯誤,輸入的數值根本就沒讀進去。
不過這不是唯一的錯誤,等我繼續調試。
。。。
printf()處也用%lf

fabs(sum/s)改為fabs(sum-s)。畢竟是前後兩次的結果相減的差小於ε時滿足精度。
編譯通過,運行正確。

初學做到這樣不錯了,繼續加油!

⑻ 如何用C語言求正弦函數,要求精確到小數點後六位

/*泰勒公式求sin(x)*/
#include<stdio.h>
#include <math.h>
main()
{
double x,s1,e,s=0;
int n=1;
printf("輸入x和誤差范圍e:\n");
scanf("%lf %lf",&x,&e);/*誤差上限e要盡量取小,如取e為0.0000001。這里我們將e取為0.000001*/
s1=x;
do
{
s+=s1; /*s1為中間變數*/
s1=-s1*x*x/(n+1)/(n+2);
n+=2;
} while (fabs(s1)>=e);/*fabs為對實數求絕對值的函數*/

printf("x=%lf\nsin(x)=%lf\n",x,s);

}

⑼ 如何用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語言正弦函數

sin值就是可以是負數。不過sin不是按角度算的,是按弧度算的。就是sin(PAI)=0;sin(PAI/2)=1。