程序改错题,要求指出错误行号并改正错误语句。
下列程序的功能是:根据整型形参m,计算如下公式的值A1=1,A2=1/(1+A1),A3=1/(1+A2)……,Am=1/(1+Am-1)例如:若m=10,则输出A10为0.617977。
#include "stdio.h"
char fun(int n)
{float a;
int i;
for(i=2;i<=n;i++) a=1/(1+a);
return a;
}
void main()
{int m;
printf("\n 请输入m的值");
scanf("%d",&m);
printf("A%d=%d\n",m,fun);
}
答案:
(1)#include "stdio.h"
(2)int fun(int n) /*$ERROR1$*/ float fun(int n)
(3){float a; /*$ERROR2$*/ float a=1;
(4)int i;
(5)for(i=2;i<=n;i++) a=1/(1+a);
(6)return a;
(7)}
(8)main()
(9){int m;
(10)printf("\n请输入m的值");
(11)scanf("%d",&m);
(12)printf("A%d=%f\n",m,fun);
(13)/*$ERROR3$*/ printf("A%d=%f\n",m,fun(m));}