//想知道这段代码有什么错误
//主要在数据类型那里
//要怎么改正
#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语句吧