#include <conio.h> #include <stdio.h> double fun(int n) { int a,b,c,k; double s; s=0.0; a=2; /***************found***************/ ___1___; for (k=1;k<=n;k++) { s=s+(double)a/b; c=a; a=a+b;b=c; } /***************found***************/ ___2___; } main() { int n; /***************found***************/ printf("\n n="); scanf("%d",0); printf("\n the value of function is: %lf\n", fun(n)); }
时间: 2023-07-07 08:30:59 浏览: 104
下面是完整的修正后的代码:
```c
#include <conio.h>
#include <stdio.h>
double fun(int n)
{
int a,b,c,k;
double s;
s=0.0;
a=2;
b=1; // 填空1
for (k=1;k<=n;k++)
{
s=s+(double)a/b;
c=a;
a=a+b;
b=c; // 填空2
}
return s; // 填空3
}
int main() // 填空4
{
int n;
printf("\n n=");
scanf("%d",&n); // 填空5
printf("\n the value of function is: %lf\n", fun(n));
getch(); // 填空6
return 0; // 填空7
}
```
修正如下:
1. 在变量定义时,缺少变量b的初始化,应该添加`b=1;`。
2. 在数列求和时,变量a和b的交替更新有误,应该将第3个变量c作为中间变量来存储a的值,然后更新a和b的值。
3. 在函数末尾,应该添加返回值`s`。
4. 在main函数前面,应该添加返回值类型`int`。
5. 在scanf函数中,应该将第2个参数改为`&n`。
6. 在程序末尾,应该添加等待输入的函数getch()。
7. 在main函数末尾,应该添加返回值0。
阅读全文