为了账号安全,请及时绑定邮箱和手机立即绑定

为什么程序一运行就这样了

为什么程序一运行就这样了

C++
looya 2018-03-20 23:33:19
为什么一运行就出现press any key to continue 这是源代码 #include<iostream> #include<cmath> using namespace std; int main() { int A,B,n,f[100000000],i; while(cin>>A>>B>>n) { if(A==0&&B==0&&n==0) break; else { f[0]=1;f[1]=1; for(i=2;i<n;i++) f[i]=A*f[i-1]+B*f[i-2]; cout<<f[n-1]<<endl; } } return 0; }
查看完整描述

5 回答

已采纳
?
Jedenn

TA贡献4条经验 获得超2个赞

计算一下,假设你当前系统的int类型为4个字节,那么一个100000000的数组需要的空间为(4*100000000)/1024/1024 = 381GB,现在计算机内存常见的有8G,你这个数组开得太大太大了。

查看完整回答
反对 回复 2018-03-21
?
慕码人2438695

TA贡献1条经验 获得超0个赞

栈空间一般是2M或者1M,你这个f[100000000]数组过大,直接导致栈溢出,程序直接结束。

查看完整回答
反对 回复 2018-03-21
?
BingBing_Elf

TA贡献1条经验 获得超0个赞


你的数组太大了,建议改小,我试着运行了一下f[10000],是没有问题的。

查看完整回答
反对 回复 2018-03-21
?
onemoo

TA贡献883条经验 获得超454个赞

根据你的另一个问题。

你这里的 f 数组也太大了。试试改小些。

查看完整回答
反对 回复 2018-03-21
  • 5 回答
  • 0 关注
  • 1798 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信