//想知道这段代码有什么错误 //主要在数据类型那里 //要怎么改正

//想知道这段代码有什么错误
//主要在数据类型那里
//要怎么改正
#include
double reciprocal(int n);
int isum(int max);
int main()
{
    double an=0,e=0;
    int n = 1;
    while (an >= 1e-5)
    {
        double an =( 1 / (isum(n));
        e = (e + (1 / (isum(n)));
        n++;

    }
    printf("%lf", e);
    printf("%d", n);
}

int isum(int max)
{//求阶乘的函数
    int i = 1, s = 1;
    for (i = 1; i <= max; i++)
    {
        s = i * s;

    }
    return s;
    //不要把return语句写到for循环里面
    //否则只会走一次
}

主要问题是你这个while根本不会满足条件,an=0啊
13、14行的1改为1.0
你改成do...while语句吧