使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun,其功能是:根据以下公式计算S,并将计算结果作为函数值返回,n通过形参传入。 例如,若n的值为11时,函数的值为1.

admin2019-03-19  64

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun,其功能是:根据以下公式计算S,并将计算结果作为函数值返回,n通过形参传入。

例如,若n的值为11时,函数的值为1.833333。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<Stdio.h>
#include<string.h>
float fun(int n)
{

}
void main()
{
int n;
float s;
system("CLS");
printf("\nPlease enter N:");
scanf("%d",&n);
s=fun(n);
printf("The result is:%f\n",s);
}

选项

答案float fun(int n) { int i,s1=0; float s=0.0; for(i=1;i<=n;i++) { s1=s1+i;/*求每一项的分母*/ s=s+1.0/s1;/*求多项式的值*/ } return s; }

解析 此类计算表达式值的程序,首先需要根据题意分析表达式的规律,得出通项,然后再完成程序语句。
本题中表达式的规律是1+2+…+n的倒数之和,那么可以通过for循环语句来实现第1项到第n项的变化。其实就是累加算法,方法是先根据题目要求定义变量,注意该变量的数据类型,然后对其进行初始化操作,因为该变量的作用是累加器,所以初始值应为0(或0.0,根据变量数据类型来确定),再通过for循环语句来完成累加过程。
本题中s1用来表示每一项的分母,每一项的分母都是由前一项分母加项数。注意,由于s1定义成一个整型,所0以在s=s+1.0/sl语句中不能把1.0写成1。
转载请注明原文地址:https://kaotiyun.com/show/UBRp777K
0

最新回复(0)