cos()是库函数,在头文件math.h中,原型是double cos(double x);,其中x要用弧度表示。如求30°的余弦值可用下列代码实现:
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、确山网络推广、小程序定制开发、确山网络营销、确山企业策划、确山品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供确山建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "math.h"
int main(void){
printf("cos30°= %.10f\n",cos(30*3.1415926535897932/180));
return 0;
}
#include stdio.h
#include math.h
#define P 3.1415927
double sinx(double x) {
double eps = 1E-8,delta = x;
double sgn = -1,sin = x,n = 1;
double nator = 1;
while(fabs(delta) eps) {
nator *= (n + 1.0)*(n + 2.0);
delta *= x*x/nator;
sin += sgn*delta;
sgn = -sgn;
n += 2;
}
return sin;
}
double cosx(double x) {
double eps = 1E-8,delta = 1;
double sgn = -1,cos = 1,n = 1;
double nator = 1;
while(fabs(delta) eps) {
nator *= n*(n + 1.0);
delta *= x*x/nator;
cos = cos + sgn*delta;
sgn = -sgn;
n += 2;
}
return cos;
}
int main() {
double alpha;
int T;
printf("测试次数:");
scanf("%d",T);
while(T--) {
printf("请输入度数:");
scanf("%lf",alpha);
alpha *= P/180;
printf("msin(%lf) = %lf\n",alpha,sinx(alpha));
printf("sin(%lf) = %lf\n",alpha,sin(alpha));//调用系统函数用于对比
printf("mcos(%lf) = %lf\n",alpha,cosx(alpha));
printf("cos(%lf) = %lf\n",alpha,cos(alpha));//调用系统函数用于对比
}
return 0;
}
cosx函数
#includestdio.h
#includemath.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]).
#includestdio.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(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;//标志正负
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)
//将任意弧度转化到[0,pi/2]
x=pi-x;
if(xpi/4)
//[pi/4,pi/2]调用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函数过程类似
{
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));//转换成弧度,再调用前面的函数。
printf("sinx=%lf\n",mysin(x*pi/180));
if(x==-1)
break;
}
return
0;
}
唉,程序写得相当不规范,看着好头疼;函数应该放在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);
}
//可以运行了,但是答案输出来还是有问题……自己查查你的算法,我就不看了,晕的慌