#44443: c語言 RE(Segmentation Fault)


u11031129 (德州土蛋)

學校 : 臺北市立麗山高級中學
編號 : 177630
來源 : [111.248.204.106]
最後登入時間 :
2024-12-23 00:15:40
d123. 11063 - B2-Sequence -- UVa11063 | From: [101.3.150.150] | 發表日期 : 2024-12-05 22:37

程式如下:

#include <stdio.h>

int main(){
    int a;
    while(scanf("%d",&a)){
        int arr[a];
        int boolean[100] = {0};
        int count = 0;
        for(size_t i=0;i<a;i++){
            scanf("%d",&arr[i]);
        }
        for(size_t i=0;i<a;i++){
            for(size_t j=i;j<a;j++){
                if(boolean[arr[i]+arr[j]] != 0){
                    count++;
                    break;
                }
                boolean[arr[i]+arr[j]] = 1;
            }
        }
        if(count!=0)printf("It is not a B2-Sequence.\n");
        else printf("It is a B2-Sequence.\n");
    }
}

想請問為何會有記憶體區段錯誤的問題存在呢?

 
#44450: Re: c語言 RE(Segmentation Fault)


jimmy19980625@gmail.com (張軒愷)

學校 : 東吳大學
編號 : 261552
來源 : [123.194.35.10]
最後登入時間 :
2024-02-03 06:45:39
d123. 11063 - B2-Sequence -- UVa11063 | From: [123.194.35.10] | 發表日期 : 2024-12-07 18:11

程式如下:

#include

int main(){
    int a;
    while(scanf("%d",&a)){
        int arr[a];
        int boolean[100] = {0};
        int count = 0;
        for(size_t i=0;i
            scanf("%d",&arr[i]);
        }
        for(size_t i=0;i
            for(size_t j=i;j
                if(boolean[arr[i]+arr[j]] != 0){
                    count++;
                    break;
                }
                boolean[arr[i]+arr[j]] = 1;
            }
        }
        if(count!=0)printf("It is not a B2-Sequence.\n");
        else printf("It is a B2-Sequence.\n");
    }
}

想請問為何會有記憶體區段錯誤的問題存在呢?

arr[i] + arr[j] 不一定在100以內吧?

 
ZeroJudge Forum