① 用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。