편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2022.05.12

    백준 2981 문제 Segmentation fault 오류 부분


    #include <iostream>
    using namespace std;
    
    int main()
    {
        int n;
    
        cin >> n;
    
        int arr[n];
    
        for(int i=0; i<n; i++)
        {
            cin >> arr[i];
        }   
    
        int min;
    
        min = arr[0];
    
        for(int i=0; i<n; i++)
        {
            if(arr[i]<min)
            {
                min = arr[i];
            }
        }
    
        int temp[n][min-2];
    
        for(int i=0; i<n; i++)
        {
            for(int j=2; j<min; j++)
            {
                temp[i][j-2] = arr[i]%j;
            }
        }
    
        int rel[min-2];
    
        for(int i=0; i<n; i++)
        {
            for(int j=2; j<min; j++)
            {
                if( (i+1) < n )
                {
                    if( temp[i][j-2] == temp[i+1][j-2] )
                        rel[j-2] = j;
                    else
                        rel[j-2] = 0;
                }
                else
                    break;
            }
        }
    
        for(int i=2; i<min; i++)
        {
            if( rel[i-2] != 0)
            {
                cout << rel[i-2];
                cout << " ";
            }
        }
    
        cout << endl;
    
        return 0;
    }
    

    전체 코드는 이렇고 디버깅으로 초기화되지 않은 배열이 없게 만들긴 했습니다.

    구름 ide를 이용해서 컴파일링 했을 때는 정상적으로 실행되지만 제출했을 때에는 런타임 오류가 뜹니다.

    아무리 찾아도 안보여서 질문드립니다.

  • 프로필 김선표님의 편집
    날짜2022.05.11

    백준 2981 문제 Segmentation fault 오류 부분


    include

    using namespace std;

    int main() { int n;

    cin >> n;
    
    int arr[n];
    
    for(int i=0; i<n; i++)
    {
        cin >> arr[i];
    }   
    
    int min;
    
    min = arr[0];
    
    for(int i=0; i<n; i++)
    {
        if(arr[i]<min)
        {
            min = arr[i];
        }
    }
    
    int temp[n][min-2];
    
    for(int i=0; i<n; i++)
    {
        for(int j=2; j<min; j++)
        {
            temp[i][j-2] = arr[i]%j;
        }
    }
    
    int rel[min-2];
    
    for(int i=0; i<n; i++)
    {
        for(int j=2; j<min; j++)
        {
            if( (i+1) < n )
            {
                if( temp[i][j-2] == temp[i+1][j-2] )
                    rel[j-2] = j;
                else
                    rel[j-2] = 0;
            }
            else
                break;
        }
    }
    
    for(int i=2; i<min; i++)
    {
        if( rel[i-2] != 0)
        {
            cout << rel[i-2];
            cout << " ";
        }
    }
    
    cout << endl;
    
    return 0;
    

    }

    전체 코드는 이렇고 디버깅으로 초기화되지 않은 배열이 없게 만들긴 했습니다.

    구름 ide를 이용해서 컴파일링 했을 때는 정상적으로 실행되지만 제출했을 때에는 런타임 오류가 뜹니다.

    아무리 찾아도 안보여서 질문드립니다.