|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main(void)
{
int n;
scanf("%d",&n);
double array[1000]={1};
for(int i=1;i<=n;i++)
{
array[i]=array[i-1]*i;
}
double num[1000]={1};
for(int j=1;j<=n;j++)
{
num[j]=1.0/array[j]+num[j-1];
}
printf("%.8lf",num[n]);
return 0;
}
//实现 e=1+1/1!+1/2!+?+1/n!的近似计算
使用以上代码当输入n=1000时无法返回0
如果将double array[1000]={1};改为double array[n]={1};
同时将double num[1000]={1};改为double num[n]={1};输入1000便能够正常运行
求解为什么会出现这种情况,感谢!!!
for(int i=1;i<=n;i++)
{
array[1]=array[1-1]*1;
}
array[1000]=array[1000-1]*1000;
我想说的是有array[1000]这号元素吗? array[1000]的数组最大元素应该是array[999]吧
|
|