#44443: c語言 RE(Segmentation Fault)


u11031129 (德州土蛋)

學校 : 臺北市立麗山高級中學
編號 : 177630
來源 : [220.129.195.60]
最後登入時間 :
2024-12-27 21:03:31

程式如下:

#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.33.43]
最後登入時間 :
2025-02-07 09:23:43

程式如下:

#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以內吧?