本帖最后由 friendan 于 2013-11-6 22:10 编辑
这代码是要解决什么题目?还是胡乱写的?希望告知。
我改了下(VC6):#include <stdafx.h>
#include<stdio.h>
#include<math.h>
#define A(x,i,j) pow(i-x,i)/(j*i) //A带参红
int f(int n) //既然返回了1或2,返回值类型为int
{
if (n == 1)
{
return 1;
}
else if(n == 2)
{
return 2;
}
else return f(n - 1) + f(n - 2); //从第3项开始,每一项等于前两项之和
}
int main()
{
int i, j, n = 1;
double a,s,x;
printf("输入一个绝对值小于1的数");
do
scanf(" %lf", &x);
while(fabs(x)>=1); //绝对值小于1,不该这样判断:fabs(x) <= 1
s = x;
do{
s += a;
n++;
i = f(n);
j = f(n - 1);
a = A(x, i, j);
}
//while(fabs(a) > e - 5);//哪里来的e
while(fabs(a) >5);
printf("s=%lf\n", s);
return 0;
}
效果截图:
|