函数fun()是根据正整数n,求下面数列的和 s=1+1/22+1/333+......+1/nn...nn 当输入n=5,s=1.04870057 ,注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的注释语句之间填入所编写的若干语句。 */ #include<stdio.h> #include<stdlib.h> double fun(int n) { /*********Begin*********/ /*********End*********/ } int main() { FILE *in,*out; int n,i; double s; scanf("%d",&n); s=fun(n); printf("%.8lf\n",s); /**************/ in=fopen("in96.dat","r"); out=fopen("out96.dat","w"); while(!feof(in)) { fscanf(in,"%d",&n); fprintf(out,"%.8lf\n",fun(n)); } fclose(in); fclose(out); system("pause"); return 0;
时间: 2023-07-23 16:12:02 浏览: 136
C语言程序设计-编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1+13+15+17+…+1(2m+1)
5星 · 资源好评率100%
根据题目要求,我们需要在注释语句之间填写代码,使得程序能够正确地计算数列的和,并输出到文件中。
下面是函数fun的代码实现:
```c
#include<stdio.h>
#include<stdlib.h>
double fun(int n)
{
double s=0,t=0;
int i,j,m,k;
for(i=1;i<=n;i++)
{
m=1;
for(j=1;j<=i;j++) m=m*10;
t=t+m;
s=s+1/t;
}
return s;
}
int main()
{
FILE *in,*out;
int n,i;
double s;
scanf("%d",&n);
s=fun(n);
printf("%.8lf\n",s);
in=fopen("in96.dat","r");
out=fopen("out96.dat","w");
while(!feof(in))
{
fscanf(in,"%d",&n);
fprintf(out,"%.8lf\n",fun(n));
}
fclose(in);
fclose(out);
system("pause");
return 0;
}
```
在for循环中,i表示当前的位数,j用于计算10的i次方,m表示10的i次方,t表示当前位的值,s表示最终求和的结果。
代码中需要填充的部分是:
```c
m=1;
for(j=1;j<=i;j++) m=m*10;
t=t+m;
s=s+1/t;
```
在这里,我们首先将m赋值为1,然后依次乘以10,直到乘i次方即可得到10的i次方。接着将t加上m,最后将1/t加到s中即可。
阅读全文