頭文件包含。math.h
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),息縣企業(yè)網(wǎng)站建設(shè),息縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,息縣網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,息縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
cos
:余弦函數(shù)
函數(shù)原型:double
cos(double
x);
頭文件:#includemath.h
是否是標(biāo)準(zhǔn)函數(shù):是
函數(shù)功能:求x的余弦值,這里,x為弧度。
返回值:計算結(jié)果的雙精度值。
例程如下:
求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:正弦函數(shù)
函數(shù)原型:double
sin(double
x);
頭文件:#includemath.h
是否是標(biāo)準(zhǔn)函數(shù):是
函數(shù)功能:求x的正弦值,這里,x為弧度。
返回值:計算結(jié)果的雙精度值。
例程如下:
求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語言中解決正弦或余弦函數(shù)的表示方法我是一個?頭文件包含。math.h
cos :余弦函數(shù)
函數(shù)原型:double cos(double x);
頭文件:#includemath.h
是否是標(biāo)準(zhǔn)函數(shù):是
函數(shù)功能:求x的余弦值,這里,x為弧度。
返回值:計算結(jié)果的雙精度值。
例程如下: 求cosx。
#include stdio.h
#include math.h
int main(void)
{
double result;
double x = M_PI。
#includestdio.h
#define
pi
3.14159265
//pi定義
double
mypow(double,int);
//自定義指數(shù)函數(shù)
int
mult(int);
//階乘函數(shù)
double
mysin(double);
//sin函數(shù)
double
mycos(double);
//cos函數(shù)
double
mypow(double
x,int
n)
{
int
i;
double
result=1;
if(n0)
for(i=1;i=n;i++)
result*=x;
return
result;
}
int
mult(int
n)
{
int
i;
int
result=1;
if(n0)
for(i=1;i=n;i++)
result*=i;
return
result;
}
double
mysin(double
x)
{
int
flag=1;//標(biāo)志正負(fù)
int
i;
double
result=0;
while(x=2*pi)
x-=2*pi;
while(x0)
x+=2*pi;
if(xpi)
{
x=2*pi-x;
flag=-flag;
}
if(xpi/2)
//將任意弧度轉(zhuǎn)化到[0,pi/2]
x=pi-x;
if(xpi/4)
//[pi/4,pi/2]調(diào)用cosX在[0,pi/4]求解,減少誤差
return
flag*mycos(pi/2-x);
for(i=0;i10;i++)//taylor展開
{
result+=((double)1)*mypow(x,2*i+1)*mypow(-1,i)/mult(2*i+1);
}
return
flag*result;
}
double
mycos(double
x)//與sin函數(shù)過程類似
{
int
flag=1;
int
i;
double
result=0;
while(x=2*pi)
x-=2*pi;
while(x0)
x+=2*pi;
if(x1.5*pi)
x=2*pi-x;
if(xpi/2
x=pi)
{
x=pi-x;
flag=-flag;
}
if(xpi
x=1.5*pi)
{
x-=pi;
flag=-flag;
}
if(xpi/4)
return
flag*mysin(pi/2-x);
for(i=0;i10;i++)
{
result+=((double)1)*mypow(x,2*i)*mypow(-1,i)/mult(2*i);
}
return
flag*result;
}
int
main()//測試程序
{
int
x;
while(1)
{
scanf("%d",x);//可以輸入任意一個角度(角度制),-1終止程序
printf("cosx=%lf\n",mycos(x*pi/180));//轉(zhuǎn)換成弧度,再調(diào)用前面的函數(shù)。
printf("sinx=%lf\n",mysin(x*pi/180));
if(x==-1)
break;
}
return
0;
}
通過輸入一個角度的自定義變量a(輸入范圍在-180到180度)
先判斷范圍,若大于90或者小于-90,則a=180-a,設(shè)立標(biāo)志位置1;否則不管
然后b=a乘pi除180度,換算成弧度制。
定義變量c=余弦的泰勒級數(shù)展開,原公式里面的x就是b,百度有公式(余弦的泰勒級數(shù)展開),一般取到前5項就好。
輸出通過計算后的函數(shù)值即可。
唉,程序?qū)懙孟喈?dāng)不規(guī)范,看著好頭疼;函數(shù)應(yīng)該放在main外面……
#includestdio.h
#includemath.h
double jiecheng(int n)
{
int i;
double sum=1;
for(i=1;i=n;i++)
{
sum=sum*i;
}
return sum;
}
double fang(int x,int n)
{
double sum;
sum=pow(x,n);
return sum;
}
int main(void)
{
int j=1;
double x,e,count=0;
printf("e: ");
scanf("%lf",e);
printf("x: ");
scanf("%lf",x);
do{
count=count+(pow(-1,j-1))*fang(x,2*(j-1))/jiecheng(2*(j-1));
}while (fang(x,2*(j-1))/jiecheng(2*(j-1))e);
printf("%lf",count);
}
//可以運行了,但是答案輸出來還是有問題……自己查查你的算法,我就不看了,暈的慌