变量开全局和开在main主函数中有啥区别?

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

player123 @ 2023-08-27 21:16:52

P1074

#include<bits/stdc++.h>
using namespace std;
int n,l,t[10005];
int num=0;
struct tree{
    int start,finall;
}a[100005];
int main(){
    cin>>l>>n;
    for(int i=0;i<=10005;++i){
        t[i]=1;
    }
    for(int i=1;i<=n;++i){
        cin>>a[i].start>>a[i].finall;
        for(int j=a[i].start;j<=a[i].finall;++j){
            t[j]=0;
        }
    }
    for(int i=0;i<=l;++i){
        //cout<<t[i]<<" ";
        num+=t[i];
    }
    cout<<num;
    return 0;
} 

用上面这段代码会错第一组数据\ 但把int num=0;放main里就能过

这啥情况?????


by OldDriverTree @ 2023-08-27 21:20:37

@player123 初始化时 t 数组越界,越界到了 num,导致 num 变成 1


by OldDriverTree @ 2023-08-27 21:21:15

@player123 还有不是 P1047 吗()


by player123 @ 2023-08-27 21:25:05

@OldDriverTree\ 明白了 谢谢\ 题号不小心打错了。。。。。


|