모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    Fairytale님의
    개인페이지입니다
    가입 : 10-04-12
    방문 : 2165회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : computer_82022
    작성자 : Fairytale
    추천 : 5
    조회수 : 599
    IP : 61.109.***.69
    댓글 : 3개
    등록시간 : 2013/03/22 03:03:59
    http://todayhumor.com/?computer_82022 모바일
    자러 가신 금치산자 님을 위한 윤년 프로그래밍 짜는법

    문제 : If else를 사용하여 주어진 연도가 윤년인지 아닌지 확인하라. 단, %를 3번이나 그 이하로 사용해야한다.

     

     

    생각

     

     

    - 윤년이 뭐더라... 4로 나눠떨어지는 그거 아닌가. 정확한 조건이 생각이 안나니 검색해보자

    - 윤년은 4로 나누어지면서 100으로는 나누어 떨어지지 않는 년 (단, 400으로 나누어 떨어지는 년은 윤년으로 )

     

    - 일단 기본적인 몸체부터 만들자

    #include <stdio.h>

    int main()

    {

    return 0;

    }

     

    - 일단 어떤 숫자가 윤년인지 아닌지를 검사해야 하니까. [어떤 숫자] 변수를 하나 지정하자. 연도니까 year 정도로 하면 되겠지?

    #include <stdio.h>

    int main()

    {

    int year;

    return 0;

    }

     

    - 어... 그리고 사용자가 어떤 숫자를 [입력]하면 그게 윤년인지 아닌지 검사시켜줘야겠지. 입력부를 만들자

    #include <stdio.h>

    int main()

    {

    int year;

    scanf("%d", &year);

    return 0;

    }

     

    - 그런데 좀 예쁘지 않네. scanf로 [사용자가 숫자를 입력하기 이전에 안내문] 하나정도는 넣어줘야겠다.

    - scanf앞쪽에 printf문을 하나 추가해주자.

     

    #include <stdio.h>

    int main()

    {

    int year;

    printf("숫자를 입력하세요 : ");

    scanf("%d", &year);

    return 0;

    }

     

    - 좋아. 지금까지는 숫자를 입력하는 프로그램을 만들었군. 이제 본격적으로 윤년인지 아닌지 검사하는 부분을 추가해볼까?

    - 윤년 검사를 어떻게 해야하지?

    - 일단 윤년에 뭐가 있을까 미리 생각해볼까 대충 2004, 2008, 2012년은 윤년이고... 2100년은 윤년이 아니군.

    - 윤년은 4로 나눠 떨어지면서 100으로는 나눠 떨어지지 않는수... 

    - 즉 (1) 4로 나눠 떨어진다. // (2) 100으로 나눠떨어지지 않는다.

    - 두가지 조건을 동시에 '둘 다' 충족시켜야 윤년이군. 이걸 검사할 수 있도록 먼저 해보자.

     

    - 4로 나눠 떨어지고 (and) 100으로 나눠떨어지지 않는다.

    나눠 떨어진다는 것은 나누었을때 나머지가 0이라는 뜻이고

    나눠 떨어지지 않는다는것은 나머지가 0이 아니라는 뜻이지.

     

    - 나머지를 검사하는건 % 기호를 쓰면 되겠군

    A%B라고 하면 A를 B로 나눴을때 나머지만 알려주는 기호지.

    예를들어 100%3이라고 하면 결과값은 1이 나올꺼야.

     

    - 4로 나눠 떨어진다라는 것은. 나머지가 생기지 않는다. 나머지가 0이다. year%4 == 0 이라는 뜻 이고

    - 100으로 나눠 떨어지지 않는다는 것은 나머지가 생긴다. 나머지가 0이 아니다. year%100 != 0 이라는 뜻이지

    - 이걸 동시에 충족시켜야 하니 이 조건을 and(&&)로 묶으면 되겠군

     

    if ( year%4 == 0 && year%100 != 0 )

    {

    // 위 조건을 만족시키면 윤년 맞아!

    }

    else if

    {

    // 만족 안시키면 윤년 아니야!

    }

     

    이 정도로 구현할 수 있겠군. 본문에 추가해볼까?

     

    #include <stdio.h>

    int main()

    {

    int year;

    printf("숫자를 입력하세요 : ");

    scanf("%d", &year);

     

    if ( year%4 == 0 && year%100 != 0 )

    {

    printf("윤년 맞아!");

    }

    else

    {

    printf("윤년 아니야!");

    }

     

    return 0;

    }

     

    - 그런데 아까 400으로 나눠 떨어지는건 윤년이 맞다고 했잖아. 뭐 이걸 구현하기는 식은죽 먹기군

    if(year%400 == 0)

    {

    printf("윤년 맞아!")

    }

     

    - 그런데 고민이 생겨버렸군.

     

    (ㄱ)      if ( year%4 == 0 && year%100 != 0 )

    {

    printf("윤년 맞아!");

    }

    else

    {

    printf("윤년 아니야!");

    }

     

    (ㄴ)      if ( year%400 == 0 )

    {

    printf("윤년 맞아!");

    }

     

    (ㄱ)과 (ㄴ) 어떤걸 먼저 검사해야 할까?

     

    - 2400년을 예로 들어서 (ㄱ)을 먼저 검사한다고 해보자.

    year%4 == 0 이부분은 충족하지만, year%100 != 0 이부분은 충족시키지 못하네.

    둘다 동시에 충족해야 윤년이라고 했지? 즉, (ㄱ) 조건문은 2400년을 윤년으로 인식하지 않는군! 그러면 안되지!

    즉... (ㄴ)을 먼저 검사해야 한다는 것이지. 그러고도 조건이 충족되지 않으면(else) (ㄱ)을 검사하게 하자.

     

    #include <stdio.h>

    int main()

    {

    int year;

    printf("숫자를 입력하세요 : ");

    scanf("%d", &year);

     

    if ( year%400 == 0 ) // 400으로 나눴을때 나머지가 0인가?

    {

    printf("윤년 맞아!");

    }

    else // 이부분과 아래 if 부분은 붙일 수 있음 else if (yea...  이런 식으로

    if ( year%4 == 0 && year%100 != 0 ) // 4로 나눴을때 나머지가 0이면서, 100으로 나눴을때는 나머지가 0이 아닌가?

    {

    printf("윤년 맞아!");

    }

    else

    {

    printf("윤년 아니야!");

    }

     

     return 0;

    }

     

     

     

    끝.

     

    주어진 문제에서 %를 3번 이하로 쓰라고 했는데, mod의 %를 의미하는거라 생각합니다. ^^; 또는 문제에 연도를 제시해줬을거라 생각됩니다.

    scanf의 %도 사용한걸로 치면... ㄷㄷ

    누가 한번 돌려보시고 오류 부분 지적해주세요. 컴파일러가 없어서 핸드코딩에 가깝습...


    이 게시물을 추천한 분들의 목록입니다.
    [1] 2013/03/22 03:35:18  210.92.***.235  수리영역1  260378
    [2] 2013/03/22 03:45:27  58.237.***.89  이건뭐  58793
    [3] 2013/03/22 03:58:52  129.97.***.127  Karcell  284124
    [4] 2013/03/22 04:06:00  1.237.***.203  스윗초코  81299
    [5] 2013/03/22 08:58:56  175.223.***.121  애기곰  110796
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    95
    배신한 자는 배신으로 죽는다고 하잖아요. Fairytale 14/01/12 07:16 64 0
    94
    서폿하면서 작은 깨달음 [5] Fairytale 14/01/06 04:03 297 2
    93
    스탠리 패러블이나, 투더문같은 게임 있을까요? [5] Fairytale 14/01/03 16:54 98 0
    92
    솔직히 "미쿠 키트 1개이상 깠다"는 사람 클릭. Fairytale 13/12/12 18:58 145 0
    91
    스튜어트 비밀상점 빵22개 + 25골드로 6분만에 뚫기 [3] Fairytale 13/10/20 16:35 98 5
    90
    "아이템 거래 게시물은 청소년 유해 매체 입니다." (?) [7] Fairytale 13/10/04 04:14 454 8
    89
    다음 그림과 오유인들의 대화를 보고 문제에 답하시오. (4점) [7] Fairytale 13/09/20 16:59 194 4
    88
    마비노기 도서관 카페. 마도카! [3] Fairytale 13/09/04 18:53 101 4
    87
    경제 관련 만화 동영상을 하나 찾고 있습니다. [2] Fairytale 13/07/05 16:00 13 0
    86
    [c++] 왜 txt 파일을 못 읽어 들일까요... ㅠㅠ [6] Fairytale 13/06/20 16:30 57 0
    85
    드레이븐 레오나 조합을 이길 수 있는 봇조합이 뭐가 있을까요? [8] Fairytale 13/06/19 11:10 221 0
    84
    광고수익을 목적으로 동영상을 불펌게시하는 유저 Fairytale 13/06/09 20:25 18 0
    83
    특수문자 5개를 넣으려고 하는데 16바이트가 필요. 왜그럴까요. [9] Fairytale 13/06/08 09:04 70 1
    82
    모든 동아리가 1등 하는 방법 Fairytale 13/06/03 23:20 65 0
    81
    이번 이벤트 요약.jpg [1] Fairytale 13/06/01 02:43 110 5
    80
    서폿충을 심해에서 끌어올려 주실분 없나요... 흐규흐규 [2] Fairytale 13/05/21 23:44 76 0
    79
    낭만농장. '불규칙'한 것이 '자연'스러워 보여요. [4] Fairytale 13/05/17 04:51 114 5
    78
    김일병 일로와봐.gif Fairytale 13/05/07 23:03 67 0
    77
    국간장/양조간장/진간장에 대한 차이점 아시는분 [3] Fairytale 13/04/27 19:08 60 0
    75
    흑백사진이 컬러사진으로 보이는 착시현상 [5] Fairytale 13/04/09 11:28 357 5
    74
    북미섭 롤을 했다. 누군가 럭스를 픽했다. [4] Fairytale 13/04/08 15:25 398 2
    73
    마비노기 흑화 카페. 마흑콰! Fairytale 13/04/01 00:54 48 4
    자러 가신 금치산자 님을 위한 윤년 프로그래밍 짜는법 [1] Fairytale 13/03/22 03:03 50 4
    71
    `▲´ 이런 얼굴한 애들이 디펜스하는 게임 - Incursion Fairytale 13/03/21 08:18 100 1
    70
    오버로딩에 대한 이해가 되지 않습니다. [10] Fairytale 13/03/08 14:31 65 0
    69
    자식 이기는 부모 없다더니... [4] Fairytale 13/03/04 22:00 359 3
    68
    OX퀴즈 족보 [3] Fairytale 13/02/28 16:08 100 4
    67
    마도카가 네이버 대표카페가 되었어요 ^ㅅT [3] Fairytale 13/02/27 02:31 61 1
    66
    천리안 상향안 5가지 [11] Fairytale 13/02/20 15:44 377 2
    [1] [2] [3] [4] [5]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈