c语言计算余弦函数近似值 c语言求余弦函数的近似值

C语言:使用函数求余弦函数的近似值double funcos(double e, double x)
{
if(e0)
{
int i=0;
double item=1;
double cosx=0;
while(fabs(item)=e)
{
cosx =item;
i;
item*=-1*x*x/(2*i*(2*i-1))
}
return cosx;
}
else
return -2;
}
c语言计算余弦近似值int power(int a, int n){//a代表底数,n代表指数
if(n == 0) return 1;
else return a * power(a, n -1);
}
int fac(int n){//计算n!
if(n == 0) return 1;
else return n * fac(n - 1);
}
大一C语言问题:使用函数求余弦的近似值,帮忙分析错误的原因因为int型的范围与机器和版本有关,是-32768~32767或-21亿~21亿,超过范围 , 数值就变为负值,从而引发错误 。a/s虽然都是double类型,但是当s是int类型时,就会由于超过范围引发错误 , 而s记录的是阶乘值,随n变大增长的速度很快 , 超过范围是可能的 。当x取不同值时,为了满足精度,需要取的项数不同,所以如果把s定为int型 , 会有时正确,有时错误 。把s定为double型,就一直正确 。
c语言 使用函数求余弦函数的近似值double funcos(double e, double x)
{
if(e0)
{
int i=0;
double item=1;
double cosx=0;
while(fabs(item)=e)
{
cosx =item;
i;
item*=-1*x*x/(2*i*(2*i-1))
}
return cosx;
}
else
return -2;
}
用c语言《求余弦函数的近似值》不知道题目的目的是考读写格式还是计算 。假定是计算,程序如下:
#include stdio.h
#include stdlib.h
#include math.h
double funcos(double e,double x){
double sum=1.0,term=1;
int i2=0,x2;
while(1){
term= (-1) * term*x/(i2 1) *x /(i2 2);
sum=sum term;
i2=i2 2;
if (fabs(term)e) break;
}
return sum;
}
main(){
double e,x,v;
printf("input e: ");
scanf("%lf",e);
printf("\ninput x: ");
scanf("%lf",x);
v = funcos(e,x);
printf("\ncos(x)=%.3lf\n",v);
return 0;
}
========
如果是考输入
e: 0.001x: 1
的读语句,那么上面程序修改一下:
printf("input\ne: 0.001x: 1\n");
scanf("e: %lf x:%lf",e,x);
要考输出花样,更简单,你自己能写 , 就不多说了 。
【c语言计算余弦函数近似值 c语言求余弦函数的近似值】关于c语言计算余弦函数近似值和c语言求余弦函数的近似值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读