/* 函数fun是根据输入n,求下面数列前n项的和 , 输入10 ,结果:0.206936。要求在fun函数的注释语句之间编写程序,其它部分不得增删语句。 */ #include<stdio.h> #include<stdlib.h> double fun(int n) { /**********************Begin*********************/ /**********************End*********************/ } int main() { int n; double s; FILE *in,*out; printf("输入n:"); scanf("%d",&n); s=fun(n); printf("%lf\n",s); /***********************/ in=fopen("in2019-2-3-2.dat","r"); out=fopen("out2019-2-3-2.dat","w"); while(!feof(in)) { fscanf(in,"%d",&n); fprintf(out,"%lf\n",fun(n)); } fclose(in); fclose(out); system("pause"); return 0; }
时间: 2023-07-18 15:45:37 浏览: 102
下面是实现函数fun的代码:
```c
double fun(int n) {
double sum = 0.0;
double i;
for(i = 1.0; i <= n; i++) {
sum += 1.0 / (i * (i + 1.0) * (i + 2.0));
}
return sum;
}
```
该函数通过循环计算数列前n项的和,最终返回结果。在循环中,每一项的计算公式为:1 / (i * (i + 1) * (i + 2))。
相关问题
C语言编程(编写fun函数):函数fun是根据输入n,求下面数列前n项的和 s=1/2-1/2*3/4+1/2*3/4*5/6-1/2*3/4*5/6*7/8…,输入10,结果:0.206936。
下面是使用C语言编写的fun函数,可以求解给定数列的前n项和:
```c
#include <stdio.h>
double fun(int n) {
double s = 0.5; // 初始化s为第一项
double p = 1.0; // 初始化p为第一项的分子
for (int i = 2; i <= n; i++) {
p *= (2*i-3)/(2*i-2.0); // 计算每一项的分子
s -= p/2.0; // 计算每一项的值,并累加到s中
}
return s;
}
int main() {
int n = 10;
double s = fun(n);
printf("前%d项和为:%.6f\n", n, s);
return 0;
}
```
在该程序中,我们使用了一个循环来计算数列的前n项和。在循环中,我们维护了两个变量s和p,分别表示当前计算的数列和每一项的分子。对于每一项的分子,我们使用了一个公式来计算。最后,我们将每一项的值累加到s中,并返回s作为函数的结果。在main函数中,我们调用fun函数,并将结果输出到屏幕上。
C语言编程(编写fun函数):函数fun是根据输入n,求下面数列前n项的和 s=1/2-1/2*3/4+1/2*3/4*5/6-1/2*3/4*5/6*7/8…,输入10,结果:0.206936。
以下是编写函数fun的C语言代码:
```
#include <stdio.h>
double fun(int n) {
double s = 0.5;
double prod = 1.0;
for (int i = 2; i <= n; i++) {
prod *= (2.0 * i - 3) / (2.0 * i - 2);
s += (i % 2 == 0 ? -1 : 1) * prod;
}
return s;
}
int main() {
int n = 10;
double s = fun(n);
printf("The sum of the first %d terms is: %.6f\n", n, s);
return 0;
}
```
函数fun的输入参数是整数n,返回值是前n项数列的和。在函数内部,我们用变量s来存储和的值,初始值为0.5,因为第一个数是1/2。用变量prod来存储每一项的乘积,初始值为1.0,因为第一项是1。
然后,我们用for循环从2到n遍历每一项,每次更新prod和s的值。prod的更新公式为:
```
prod *= (2.0 * i - 3) / (2.0 * i - 2);
```
这是因为每一项的分子是2i-3,分母是2i-2,所以我们可以用这个公式来更新prod的值。
s的更新公式为:
```
s += (i % 2 == 0 ? -1 : 1) * prod;
```
这是因为奇数项的符号为正,偶数项的符号为负,我们可以用三目运算符来判断。
最后,我们在主函数中调用fun函数,输入n=10,得到结果0.206936,用printf函数输出即可。
阅读全文