튜터리얼 문제 XHAENEUNG 풀이 문의

  • qwoowp
    qwoowp

    왠만한거 다 되는거 같은데 왜 오답일까요? 봐주실분...

    문자정렬해서 문자 비교로 풀었는데... 예외 처리가 안된 것인지...
    잘모르겟네요 봐주실분...

    #include
    #include
    //#include
    #include
    char eng[11][11] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};

    void selectionsort(char* a, int max, int min)
    {
    if(max == min)
    return;

    for(int i=min+1; i<max;i++)
    {
        if( a[i] < a[min]) {
            char temp = a[i];
            a[i] = a[min];
            a[min] = temp;
        }
    }
    
    selectionsort(a, max, min+1);
    
    return ;

    }

    int getConvertSpellToInt(char *word)
    {

    if(strlen(word) < 1 || strlen(word) > 10)
        return -1;// failed
    
    //정렬 
    selectionsort(word, strlen(word), 0);
    
    for(int i=0; i<11; i++)
    {       
        if(strcmp(word,  eng[i]) == 0)
        {
            return i;
        }
    }
    
    return -1;

    }

    int main()
    {
    int T= 0;
    bool bResult = false;
    freopen("D:\MyProject\CodeJam\연습\SampleCode\a.in", "rb", stdin);

    for(int i=0; i<11; i++)
        selectionsort(&eng[i][0], strlen(eng[i]), 0);
    
    scanf("%d", &T);
    
    while(T-->0)
    {
        char A[11],B[11],C[11];
        char operation;
    
        memset (A, 0, 11);
        memset (B, 0, 11);
        memset (C, 0, 11);
        operation = 0;
    
        scanf("%s %c %s = %s", A, &operation, B, C);
    
        bResult = false;
        switch(operation)
        {
        case '+':
                if( getConvertSpellToInt(A) + getConvertSpellToInt(B) == getConvertSpellToInt(C) )
                    bResult = true;
            break;
        case '-':
                if( getConvertSpellToInt(A) - getConvertSpellToInt(B) == getConvertSpellToInt(C) )
                    bResult = true;
            break;
        case '*':
                if( getConvertSpellToInt(A) * getConvertSpellToInt(B) == getConvertSpellToInt(C) )
                    bResult = true;
            break;
        }
    
        bResult ? printf("Yes\n") : printf("No\n");
    }
    
    return 0;
    //return 0;

    }


    10년 전
2개의 댓글이 있습니다.
  • qwoowp
    qwoowp

    물론 입력 파일을 주석처리하고 넣었습니다....


    10년 전 link
  • qwoowp
    qwoowp

    잘못된 문자열에 대한 리턴을 -1로 할경우 오답을 정답으로 판단할 수 있음. 그래서 0xFFFF 로 허용범위를 넘는 값으로 에러 처리를 함.


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