① 用c語言編寫cosx函數
cosx函數
#include<stdio.h>
#include<math.h>
int main()
{
int n=0;
double x,sum=0;
printf("please enter x:");
scanf("%lf",&x);//
double cosx(double x,int n);
do
{
sum=sum+cosx(x,n);
n=n+1;
}
while(fabs(cosx(x,n))>1e-8);
printf("%9.8f\n",sum);
return 0;
局頃態}
桐源double cosx(double x,int n)
{
double p,q;//
乎螞p=pow(x,2*n);
double fact(int n);//
q=fact(2*n);
if(n%2)
return(-p/q);
else
return(p/q);
}
double fact(int n)//
{
double ans=1; int i;
if(n<=1)
return 1;
for(i=1;i<=n; ++i)
ans*=i;
return ans;
}
cosx函數即反餘弦函數
函數y=cosx(x∈[0,π])的反函數叫做反餘弦函數,
記作y=arccosx(x∈[-1,1]).
② 如何用C語言實現正弦或餘弦函數
如果只是需要值,那麼調用math中的sin和cos函數即可.
參讓數數為弧度, 如果要使用的參數是角度,需要自行轉換一下.
如果想自己寫冊汪,可以參考泰勒展開, 計算近似值.一般計算到最坦姿首後一項小於1e-6即可.
③ 用c語言程序編寫用下面中間公式方法求正弦和餘弦的方法 並定義為函數 在main裡面調用
#include<stdio.h>
#include<math.h>
#defineP3.1415927
doublesinx(doublex){
doubleeps=1E-8,delta=x;
doublesgn=-1,sin=x,n=1;
doublenator=1;
while(fabs(delta)>eps){
nator*=(n+1.0)*(n+2.0);
delta*=x*x/nator;
sin+=sgn*delta;
sgn=-sgn;
n+=2;
}
returnsin;
}
doublecosx(doublex){
doubleeps=1E-8,delta=1;
doublesgn=-1,cos=1,n=1;
doublenator=1;
while(fabs(delta)>eps){
nator*=n*(n+1.0);
delta*=x*x/nator;
cos=cos+sgn*delta;
sgn=-sgn;
n+=2;
}
returncos;
}
intmain(){
doublealpha;
intT;
printf("散顫測試沖咐敗次數:");
scanf("%d",&T);
while(T--){
printf("請輸入度數:");
scanf("%lf",&alpha);
alpha*=P/180;
printf("msin(%lf)=%lf
",alpha,sinx(alpha));
printf("sin(%lf)=%lf
",alpha,sin(alpha));//調用系統函數用於對比
printf("mcos(%lf)=%lf
",alpha,cosx(alpha));
printf("簡羨cos(%lf)=%lf
",alpha,cos(alpha));//調用系統函數用於對比
}
return0;
}
④ C語言求餘弦值
唉,程序寫得相當不規范,看著好頭疼;函數應該放在main外面……
#include<stdio.h>
#include<math.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);
}
//可以運行了,但是答案輸出來還是有問題……自己查查你的演算法,我就不看了,暈的慌
⑤ 用c語言程序寫出,輸入一個角度值,計算正弦餘弦,高手幫忙看看錯誤
/*
Note:Your
choice
is
C
IDE
*/
#include
"stdio.h"
#include
"math.h"
#define
PI
3.1415926//把;去掉
void
main()
{
//#define
PI
3.1415926//把;去掉,放到前面去
double
a,b,c,d;//最好改為double型,因為正餘弦函數的返回值是double型,e沒用到,去掉
printf("請輸入角度值:");
scanf("%lf",&a);//將%d改為%lf
b=PI/180.0*a;
/*為啥不行呢?*/
c=sin(b);
d=cos(b);
printf("正弦值為:%.4lf\n",c);
printf("餘弦值為:%.4lf",d);
//
return
0;//main函數無返回值,這里不需要
}
⑥ 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 的餘弦。
(6)c語言程序編譯餘弦函數擴展閱讀:
相關的三角函數:
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語言(C++) 自己編寫求餘弦值的程序。
#include<stdio.h>
#define
pi
3.14159265
//pi定義
double
mypow(double,int);
//自定義指數函數
int
mult(int);
//階乘函數
double
mysin(double);
//sin函數
double
mycos(double);
//cos函數
double
mypow(double
x,int
n)
{
int
i;
double
result=1;
if(n>0)
for(i=1;i<=n;i++)
result*=x;
return
result;
}
int
mult(int
n)
{
int
i;
int
result=1;
if(n>0)
for(i=1;i<=n;i++)
result*=i;
return
result;
}
double
mysin(double
x)
{
int
flag=1;//標志正負
int
i;
double
result=0;
while(x>=2*pi)
x-=2*pi;
while(x<0)
x+=2*pi;
if(x>pi)
{
x=2*pi-x;
flag=-flag;
}
if(x>pi/2)
//將任意弧度轉化到[0,pi/2]
x=pi-x;
if(x>pi/4)
//[pi/4,pi/2]調用cosX在[0,pi/4]求解,減少誤差
return
flag*mycos(pi/2-x);
for(i=0;i<10;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函數過程類似
{
int
flag=1;
int
i;
double
result=0;
while(x>=2*pi)
x-=2*pi;
while(x<0)
x+=2*pi;
if(x>1.5*pi)
x=2*pi-x;
if(x>pi/2
&&
x<=pi)
{
x=pi-x;
flag=-flag;
}
if(x>pi
&&
x<=1.5*pi)
{
x-=pi;
flag=-flag;
}
if(x>pi/4)
return
flag*mysin(pi/2-x);
for(i=0;i<10;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));//轉換成弧度,再調用前面的函數。
printf("sinx=%lf\n",mysin(x*pi/180));
if(x==-1)
break;
}
return
0;
}
⑧ 如何在C語言中解決正弦或餘弦函數的表示方法我是一個
如何在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。