一道c语言简单题

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:46:24
#include <stdio.h>
void main()
{
double e=1.0;
int i,jc=1;
for(i=1;i<=49;i++)
{
jc*=i;
e=e+1/jc;
}
printf("e=%f",e);
}
调试通过,链接也通过,运行时为什么说什么内存不能为read????
求的是:1+(1/1!)+(1/2!)+(1/3!)+.......

定义的变量jc为整形,范围是0-255,而在程序运行中,jc的值大于255。因此会出现“divid error".改正:将jc的类型设为double型。修改之后的程序如下(已调试):
#include <stdio.h>
void main()
{
double e=1.0;
int i;
double jc=1;
for(i=1;i<=49;i++)
{
jc*=i;
e=e+1/jc;
}
printf("e=%f",e);
}


49!约为6乘以10的62次方,超过了int的上界,应将jc改为double型