关于C语言用级数求cosx的值,x的绝对值大于1时结果出错
发布网友
发布时间:2023-02-17 17:43
我来回答
共1个回答
热心网友
时间:2023-09-20 17:35
你的程序有两处错误,已经改正,在修改的地方做了说明。修改后的程序如下:
#include<stdio.h>
int main()
{
double f(double x, int b);
double fac(int x);
double x,sum=1.0,m=1.0;
int n=2,h=1;
printf("Please enter x:");
scanf("%lf",&x);
do
{
h *=-1;
m = f(x, n) / fac(n);
n += 2;
sum += m*h;
}while (m > 1e-6);
printf("cosx=%lf", sum);
return 0;
}
double f(double x, int n)
{
double m=1.0;//此句m=x错误
int i;
for (i = 0; i <= n-1; i++)
{
m *= x;//此句m*=m错误
}
return(m);
}
double fac(int x)
{
double m=1.0;
int i;
for (i = 2; i <= x; i++)
{
m = m*i;
}
return(m);
}