모두의 코드
모두의 코드

총 42 개의 강의로 준비된 씹어먹는 C 언어 강좌를 통해 C 언어의 처음부터 끝까지 배우실 수 있습니다! 특히 악명 높은 C 언어의 포인터나, 어려운 개념들을 충실히 짚고 넘어갑니다.

이 강좌는 2010년에 완결되었지만, 지속적으로 개선 및 보완하고 있습니다.

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정도 아는 독자를 가정하여 쓰여져 있습니다.

이 강좌는 2020년에 완결되었고 총 50 개의 강좌가 준비되어 있습니다.

사이트 내에서 검색 하기
C 언어 레퍼런스
표준 입출력 라이브러리 stdio.h
문자열 관련 라이브러리 string.h
시간 관련 라이브러리 time.h
C ++ 레퍼런스
문자열 라이브러리 string
알고리즘 라이브러리 algorithm
최근 댓글
좋은 강의 감사합니다!! #include <iostream> class Date { private: int year_; int month_; int day_; int find_last_day() { if ((month_ % 2 != 0 && month_ <= 7) || (month_ % 2 == 0 && month_ >= 8)) return 31; else { if (month_ == 2) { if (find_leap_year()) return 29; else return 28; } else return 30; } } // 윤년이면 1 int find_leap_year() { if ((year_ % 400 == 0) || (year_ % 4 == 0 && year_ % 100 != 0)) return 1; else return 0; } public: void set_date(int year, int month, int date) { year_ = year; month_ = month; day_ = date; } void add_day(int inc) { int last; int temp = day_; for (;;) { last = find_last_day(); temp += inc; if (temp <= last) { day_ = temp; break; } add_month(1); inc = temp - last; temp = 0; } } void add_month(int inc) { int quotient = 0, remainder = inc; int temp = month_; if (inc >= 12) { remainder = inc % 12; quotient = inc / 12; add_year(quotient); } temp += remainder; if (temp > 12) { add_year(1); temp -= 12; } month_ = temp; } void add_year(int inc) { year_ += inc; } void show_date() { std::cout << " " << year_ << "년 " << month_ << "월 " << day_ << "일"; } // 가능한 날짜면 1 int is_true() { int last = find_last_day(); if (day_ < 1 || day_ > last || month_ < 1 || month_ > 12) return 0; else return 1; } }; int main(void) { Date date; int year, month, day; int select, inc; std::cout << "날짜 계산기" << std::endl; for (;;) { std::cout << "기준년월일을 입력하세요. ( ex. 2021 1 1 )" << std::endl; std::cin >> year >> month >> day; date.set_date(year, month, day); if (date.is_true()) break; else std::cout << "잘못된 날짜입니다. 다시 입력해주세요." << std::endl; } std::cout << std::endl; std::cout << "년(1), 월(2), 일(3) 중 선택하여 입력하고," << std::endl; std::cout << "더할 값도 입력해주세요. ( ex. 2일 더하는 경우: 3 2 )" << std::endl; std::cin >> select >> inc; switch (select) { case 1: date.add_year(inc); break; case 2: date.add_month(inc); break; case 3: date.add_day(inc); break; } std::cout << std::endl; date.show_date(); return 0; }
이지 10.13