너의 공격패턴을 파악했다 좀 도와주세요~ㅠ

  • zumbak
    zumbak

    제 컴퓨터에서는 실행 되고 답도 잘 나오는데
    알고스팟 홈페이지에서는 컴파일 에러가 뜨네요..
    왜 컴파일 에러가 뜨는지 모르겠어요.....

    #include <stdio.h>
    #include <stdlib.h>
    
    void div_year_month( char *c_year_month, char *hour, char *minute, char *sec)
    {
        hour[0] = c_year_month[0];
        hour[1] = c_year_month[1];
        hour[2] = 0;
    
        minute[0] = c_year_month[2];
        minute[1] = c_year_month[3];
        minute[2] = 0;
    
        sec[0] = c_year_month[4];
        sec[1] = c_year_month[5];
        sec[2] = 0;
    }
    
    bool condition_check(char *c_year_month)
    {
        char c_hour[3], c_minute[3], c_sec[3];
        int hour, minute, sec;
    
        div_year_month(c_year_month, c_hour, c_minute, c_sec);
    
        hour = atoi(c_hour);
        minute = atoi(c_minute);
        sec = atoi(c_sec);
    
        if(!(hour >= 0 && hour <= 23))
            return false;
        if(!(minute >= 0 && minute <= 59))
            return false;
        if(!(sec >= 0 && sec <= 59))
            return false;
    
        return true;
    }
    
    void devide_print_str(char *string, char *rev_string, int month)
    {
        char part1[5], part2[3], part3[3], part4[3], part5[3];
    
        part1[0] = string[0];
        part1[1] = string[1];
        part1[2] = string[2];
        part1[3] = string[3];
        part1[4] = 0;
    
        part2[0] = string[4];
        part2[1] = string[5];
        part2[2] = 0;
    
        part3[0] = rev_string[0];
        part3[1] = rev_string[1];
        part3[2] = 0;
    
        part4[0] = rev_string[2];
        part4[1] = rev_string[3];
        part4[2] = 0;
    
        part5[0] = rev_string[4];
        part5[1] = rev_string[5];
        part5[2] = 0;
    
        if(month == 11)
            printf("%s-%s-11 %s:%s:%s\n", part1, part2, part3, part4, part5);
        else if(month == 22)
            printf("%s-%s-22 %s:%s:%s\n", part1, part2, part3, part4, part5);
    }
    
    void sim_strrev(char *string, char *rev_string, int size)
    {
        int i;
    
        for(i=0; i<size; i++)
            rev_string[i] = string[size-1-i];
    
        rev_string[size] = 0;
    }
    
    void count_month(char *c_year_month, int *year_month)
    {
        char c_month[3];
        int now_month;
    
        c_month[0] = c_year_month[4];
        c_month[1] = c_year_month[5];
        c_month[2] = 0;
    
        now_month = atoi(c_month);
    
        if(now_month == 12)
            *year_month = *year_month + 100 - 11;
        else 
            *year_month = *year_month + 1;
    }
    
    int main()
    {
        int year_month, N, testcase, CNT=0;
    
        char c_year_month[7], rev_year_month[7];
    
        scanf("%d", &testcase);
    
        while(testcase)
        {
            scanf("%d", &N);
            year_month = 197001;
    
            while(1)
            {
                itoa(year_month, c_year_month, 10);
    
                sim_strrev(c_year_month, rev_year_month, 6);  //문자열 역치환
    
                if( condition_check(rev_year_month) == true )  //조건 확인
                {
                    CNT++; // 11일
                    if(CNT == N){
                        devide_print_str(c_year_month, rev_year_month, 11);
                        CNT = 0;
                        break;
                    }
    
                    CNT++; // 22일
                    if(CNT == N){
                        devide_print_str(c_year_month, rev_year_month, 22); 
                        CNT = 0;
                        break;
                    }
                }
                count_month(c_year_month, &year_month);
            }
            testcase--;
        }
        return 0;
    }
    

    11년 전
5개의 댓글이 있습니다.
  • sven
    sven

    에러 메세지가 어떻게 뜨나요?


    11년 전 link
  • Taeyoon_Lee
    Taeyoon_Lee

    "컴파일 실패" 를 클릭해보시면, 왜 컴파일 에러가 났는지 알려줍니다. 링크
    itoa에 대한 헤더를 선언하지 않으셨군요.


    11년 전 link
  • JongMan
    JongMan

    가.. 강약약 강강강약 강중약!

    서브미션 페이지를 보시면 컴파일 에러 이유가 나옵니다. itoa()는 비표준 함수로, 알고스팟에서 사용하는 컴파일러 g++에선 지원하지 않습니다. sprintf()를 써보시는건 어떨까요


    11년 전 link
  • JongMan
    JongMan


    11년 전 link
  • zumbak
    zumbak

    다들 답변 감사합니다!!

    다시 해볼게요 ㅋㅋ


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