[[problem:ENCRYPT]]질문좀 드릴게요

  • return_null
    return_null

    ENCRYPT

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    
    char text[101], ans_text[101];
    char odd_text[51];
    char even_text[51];
    char nul[2] = { '\0', };
    
    int main() {
        int n,i,len,j,tmp;
        int even_len, odd_len;
    
        scanf("%d", &n);
    
        for (i = 0; i < n; i++) {
            scanf("%s", &text);
            len = strlen(text);
            even_len = 0;
            odd_len = 0;
    
            for (j = 0; j <= len; j++) {
                if (text[j] != '\0') {
                    if (j % 2) odd_text[odd_len++] = text[j];
                    else even_text[even_len++] = text[j];
                }
            }
    
            for (j = 0; j < even_len; j++) {
                if(even_text[j] != '\0') ans_text[j] = even_text[j];
            }
    
            for (j = 0; j < odd_len; j++) {
                if (odd_text[j] != '\0') ans_text[even_len+j] = odd_text[j];
            }
            printf("%s\n", ans_text);
        }
    
        return 0;
    }
    

    저는 전체 글자를 짝수랑 홀수랑 나눠서 저장한 다음에
    정답을 출력하는 어레이에 다시 넣어서 하출력하는 방법인데
    왜 오답인지를 모르겠습니다. 혹시 어느부분이 틀렸는지 알려주실수
    있으신가요?ㅠㅠㅠ 연습문제인데도 이렇게 틀리네요 ㅠㅠ


    8년 전
3개의 댓글이 있습니다.
  • gwange
    gwange

    ans_text에 이전 결과가 남아있어서 그런걸로 보이네요


    8년 전 link
  • yhtgogo
    yhtgogo

    scanf("%s", &text); 부분에서 냄새가 납니다. (배열이름은 포인터 역할을 한다는 가정하에)


    8년 전 link
  • return_null
    return_null

    제시해준 테스트 케이스 순서를 바꿔서 해보니 ans_text에 남아있던 부분도 출력이 되더군요.... 감사합니다ㅋㅋㅋㅋㅋㅋㅋㅋ


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