文章

2

粉丝

0

获赞

9

访问

337

头像
N阶楼梯上楼问题(runtime error)关于数组的答疑疑问:
P1413 华中科技大学/中国矿业大学机试题
发布于2025年3月25日 11:42
阅读数 120

#include <iostream>  
using namespace std; 
int main() {
    long dp[91];
    int n;
    dp[1]=1;
    dp[2]=2;
    for(int i=3;i<=91;i++){
        dp[i]=dp[i-2]+dp[i-1];
    }    
    while(cin>>n){
        cout<<dp[n]<<endl;
    }
    return 0;
}

这段代码是跑不了的,会产生报错,最后参考正确代码并检查发现问题出在了dp数组上。

把dp设置为全局变量后则能成功通过,代码如下:

#include <iostream>  
using namespace std; 

long dp[91];
int main() {
    int n;
    dp[1]=1;
    dp[2]=2;
    for(int i=3;i<=91;i++){
        dp[i]=dp[i-2]+dp[i-1];
    }    
    while(cin>>n){
        cout<<d...

登录查看完整内容


登录后发布评论

1 条评论
快乐小土狗
2025年3月25日 13:28

根据C语言语法规则,在函数内部定义的数组需要手动初始化,如果不初始化理论上是随机值,只是现在的很多IDE都会自动优化为0。

赞(0)