#include<stdio.h>
void qiuhe()
{ int i,n,shang,xia;
double sum,dan;
shang=1;
xia=1;
sum=1;
scanf("%d",&n);
for(i=1;i<n+1;i++)
{
shang*=i;
xia*=(i2+1);
dan=shang1.0/xia;
sum+=dan;
}
printf("%.10lf",sum);
}
int main(void)
{
qiuhe();
return 0;
}然后我吧shang xia改成double 就过了是什么原因?求详细解答,谢谢