LECTURE 도와주세요!!

  • cliberty! ^-^
    cliberty! ^-^

    이건 제 코드구요..

    /*#include <iostream>
    #include <string>
    #include <algorithm>
    
    typedef struct substring
    {
    public:
      int value;
      std::string sub;
    
      void substr(char a,char b)
      {
        sub.push_back(a);
        sub.push_back(b);
        value=10*a+b;
      }
    }subst;
    
    bool compare(subst a,subst b)
    {
      return a.value<b.value;
    }  
    
    int main()
    {
      int testcase;
      std::cin>>testcase;
    
      while(testcase--)
      {
        subst* sub;
        int length,i;
        std::string str;
    
        std::cin>>str;
        length=str.length();
        sub=(subst*)new subst[(length/2)];
    
        std::string::iterator it;
        for(it=str.begin();it!=str.end();it+=2)
        {
          sub[(it-str.begin())/2].substr(*it,*(it+1));
        }
        std::sort(sub,sub+(length/2),compare);  
        for(i=0;i<(length/2);i++)
        {
          std::cout<<sub[i].sub;
        }
        std::cout<<std::endl;
        delete[] sub;
      }
      return 0;
    }
    

    왜 안되는지 모르겠네요;;

    제가 놓치고있는게 분명 있다는소리인데..

    귀찮으시겠지만 도움말 몇마디 남겨주시면 감사하겠습니다


    13년 전
5개의 댓글이 있습니다.
  • cliberty! ^-^
    cliberty! ^-^

    코드가 불완전하게올라가네요.;


    13년 전 link
  • hyunhwan
    hyunhwan

    코드가 제대로 보이도록 수정하였습니다.

    코드를 올리실 때는 코드를 <code lang="cpp"> ... <code> 사이에 집어 넣으시면 예쁘게 보입니다.


    13년 전 link
  • hyunhwan
    hyunhwan

    15번째 줄을 보면 "value=10*a+b;" 라는 부분이 있는데 이 부분을 고치셔야 할것 같네요.

    입력으로 x, y, z 와 같은 문자가 들어오게 될 경우에는 compare함수가 올바르게 동작하지 않을 것 같습니다.


    13년 전 link
  • astein
    astein

    비교함수가 틀렸네요..
    value = 10 * a + b 로 되어 있는데 이렇게 되면 "az" > "ba" 가 되어 버립니다 :)


    13년 전 link
  • cliberty! ^-^
    cliberty! ^-^

    와...... 고맙습니다!! 해결했어요


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