问:一道求余弦函数近似值的题目。主函数中已经限制printf()输出是六位,为什么我运行输出结果是八位啊
题目:
裁判样式:
#include
#include
double funcos( double e, double x );
int main()
{
double e, x;
scanf("%lf %lf", &e, &x);
printf("cos(%.2f) = %.6f\n", x, funcos(e, x));
return 0;
}
/* 你的代码将被嵌在这里 */
自己的代码:
double funcos( double e, double x )
{
double cosx=1;
int j=1;//j表示阶乘
double z=0;//z表示指数
for(int i=1;;i++)
{
j=2*i*(2*i-1)*j;
z=pow(x,2*i)*pow(-1,i);
cosx=cosx+z/j;
if(z/j-e)
break;
}
return cosx;
}
主函数中已经限制printf()输出是六位,为什么我的运行输出结果是八位
那就没招了啊,裁判程序出毛病了
输出才有所谓的位数的概念
而函数返回double则没有
但是你可以想想变通的方法,比如调用 round 四舍五入下