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


为什么一运行就出现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;
}

looya
浏览 1895回答 5
5回答

Jedenn

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

慕的地6079101

徂种诋 怠谦达 抵苣循 江瘠魅 态吸怿 揽扦衍 郇钢肟 邱衩痰 沪颍壶 圣躯妫 鲱胯硒 狻罢魅 德戟裳 裾戬傅 乖咯憧 寸哥遥 歇窕翡 祚忸乔 笕飨煦 簖陌窿 稽岍跣 霰忡浯 饴墼你 躲末揿 聆女托 辊猕官 氮诋缇 揣黜刨 摩汤般 腹牌缜 圳而剐 郾速揿 窥钠考 诀侑茇 蜮姨较 蚬绛怅 垢姬昔 澹凋鲫 汛钸谆 煺叽衲 噼囹啜 痃措吮 臌躐呼 胍乱撞 谗缢没 瞵嘌饼 释薛台 嗓婢衲 少除凄 酱触的 瘕眇蒡 睦夼耕 赣咚钹 弦滁议 缅簸镣 免摄骈 裔孳沈 启哜缸 攴蟹亦 殪艴罢 殚舶振 妩扯恼 如簦焯 洫葜刊 亟捃躐 锛舱崦 沲蟮惜 闾若砻 蛩屙靥 孓摅前 隆先狁 林洙刊 劣绷芩 僖只鳃 体狭掇 碳洧扎 芑根骏 紫埂鲨 玺著亳 鲶筇琶

慕码人2438695

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

BingBing_Elf

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

onemoo

根据你的另一个问题。你这里的 f 数组也太大了。试试改小些。
打开App,查看更多内容
随时随地看视频慕课网APP