|  | 
 
 发表于 2013-11-6 22:08:27
|
显示全部楼层 
| 本帖最后由 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;
}
 效果截图:
 
   
 | 
 |