作业帮 > 综合 > 作业

C语言问题.输入x值,按照下列公式计算cosx的值,直到最后一项小雨10^-6为止.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 23:49:08
C语言问题.输入x值,按照下列公式计算cosx的值,直到最后一项小雨10^-6为止.
下面给图.
由于阶乘、指数计算的数值较大,相应变量均取double型,注:输入为弧度值(非角度)C语言编写,VC编译,均采用基本语句:#include <stdio.h>
double getFactorial(int n)//计算n的阶乘,返回值为浮点型
{
double ms=1.0;
int i; 
for(i=1;i<=n;i++)
{
ms *= i;
}
return ms;
}

double getPower(double x,int n)//计算x的n次方
{
int i;
double result;
for(i=0,result=x;i<n-1;i++)
{
result*=x;
}
return result;
}

int main()
{
   double x; //输入值,注意为弧度值,如pi -pi/2
   int flag_1=1; //循环中每次正负号取反
   int flag_2=2; //递增变量,取值2 4 6 8…
   double answer=1.0;//累加每次结果
   double temp=1.0;  //存储当前项的值(x^flag_2/flag_2!)
   printf("输入x的值:");
   scanf("%lf",&x);
   while(temp>=1e-6) //当前项小于10^-6退出循环
   {
flag_1 *= -1;
temp = getPower(x,flag_2)/getFactorial(flag_2);
answer += (flag_1*temp);
flag_2 += 2;
   }
   printf("cos%g=%g\n",x,answer);
   return 0;
}