lecture 문제 런타임오류 나네요

  • klata
    klata

    LECTURE

    문제는 위에 첨부했어요;
    런타임오류가 어디서 나는지 알수 있을까요?
    참고로 오류의 종류는
    RTE (SIGABRT: program aborted, probably assertion fail)
    이거네요

    #include<iostream>
    #include<vector>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        int T,t,I,J,lenth,count=0;
        string S;
        vector<string> print(1000,"0");
        vector<string> alpha;
        static int k=0;
        static int c=0;
        string swap;
    
        cin>>T;
        t=T;
        while(T)
        {
            cin>>S;
            for(unsigned int i=0; i<S.length(); i++)
            {
                alpha.push_back(S.substr(I,1));
            }
            for(int M=0; M<4; M++)
            {
                alpha.push_back("0");
            }
            for(lenth=0; lenth<1000; lenth++)
            {
                if (alpha[lenth] =="0")
                {
                    break;
                }
            }
    
            for(J=lenth/2; J>0; J--)
            {
                for(I=0;I<=J;I++)
                {
                    if(alpha[c+I*2] > alpha[c+I*2+2])
                    {
                        if(alpha[c+I*2]=="0"||alpha[c+I*2+2]=="0")
                            break;
                        swap = alpha[c+I*2];
                        alpha[c+I*2] = alpha[c+I*2+2];
                        alpha[c+I*2+2] = swap;
                        swap=alpha[c+I*2+1];
                        alpha[c+I*2+1]=alpha[c+I*2+2+1];
                        alpha[c+I*2+2+1]=swap;
                    }
                }
            }
            for(J=lenth/2; J>0; J--)
            {
                for(I=0;I<=J;I++)
                {
                    if(alpha[c+I*2] >= alpha[c+I*2+2] && alpha[c+I*2+1] > alpha[c+I*2+2+1])
                    {
                        if(alpha[c+I*2+1]=="0"||alpha[c+I*2+2+1]=="0")
                            break;
                        swap = alpha[c+I*2];
                        alpha[c+I*2] = alpha[c+I*2+2];
                        alpha[c+I*2+2] = swap;
                        swap=alpha[c+I*2+1];
                        alpha[c+I*2+1]=alpha[c+I*2+2+1];
                        alpha[c+I*2+2+1]=swap;
                    }
                }
            }
            for(I = 0; I<lenth; I++)
            {
                print[k] = alpha[k];
                k++;
            }
            print[k] = "0";
            k+=4;
            T--;
            c+=lenth+4;
        }
        for(I=0; I<k+4*t; I++)
        {
            if(print[I] == "0")
            {
                cout<<"\n";
                I+=4;
                count++;
                if(count==t)
                    break;
            }
            cout<<print[I];
        }
    }


    10년 전
1개의 댓글이 있습니다.
  • Taeyoon_Lee
    Taeyoon_Lee

    cin>>S;
    for(unsigned int i=0; i<S.length(); i++)
    {
    alpha.push_back(S.substr(I,1));
    }
    여기부터 조금 이상해보이는데요. 변수 I가 초기화된 적이 없습니다.


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.