为什么第20行,循环条件p<sl+1就不行。t和sl+1是相等的啊?

P1047 [NOIP2005 普及组] 校门外的树

flashcell @ 2024-02-06 21:37:31

#include<iostream>
using namespace std;

int main(){
    int sl,num,t,sum=0;
    int k[2]={0,0};
    cin>>sl>>num;
    t=sl+1;
    int tree[sl];//SL需要+1; 
    for(int i=0;i<sl+1;i++){
        tree[i]=1;
    }
    for(int j=0;j<num;j++){
        cin>>k[0]>>k[1];
        for(int m=k[0];m<=k[1];m++){
            tree[m]=0;
        }
    }

    for(int p=0;p<t;p++){
        if(tree[p]==1){
            sum+=1;
        }
    }
    cout<<sum;  
    return 0;
}

为什么第20行,循环条件p<t能通过,而p<sl+1就不行。t和sl+1是相等的啊?


by Dream_Creator @ 2024-02-06 21:55:43

@flashcell 不要用变量开数组,用常量,比如 tree[10010]


by flashcell @ 2024-02-07 15:25:22

@Dream_Creator 非常感谢。明白了。


|