使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun,其功能是:根据以下公式求竹的值(要求精度0.0005,即某项小于0.0005时停止迭代)。 程序运行后,若输入精度

admin2018-08-11  29

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun,其功能是:根据以下公式求竹的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

程序运行后,若输入精度0.0005,则程序应输出为3.140578。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<math.h>
double fun(double eps)
{

}
void main()
{
double x;
printf("Inputeps:");
Scanf("%1f",&x);
printf("\neps=%lf,PI=%lf\n",x,fun(X));
}

选项

答案double fun(double eps) { double s=0.0,s1=1.0; int n=1; while(s1>=eps)/*当某项大于精度要求时,继续求下一项*/ s=s+s1;/*求和*/ {s1=s1*n/(2*n+1); /*求多项式的每一项*/ n++; } return2*s; }

解析 首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。从第二项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用s1来表示每一项,s表示求和后的结果。需注意s1和s的初值都为1.0,因为循环变量从第二项开始累加。
转载请注明原文地址:https://kaotiyun.com/show/VVxp777K
0

最新回复(0)