윤년 계산
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;
// 각 달의 날 수
int mdays[][12] = {
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}
};
// year년이 윤년인가?
int isleap(int year){
return (year % 4== 0 && year%100!=0) || year % 400 == 0;
}
int dayofyear(int y, int m, int d){
int i;
int days=d;
for(i=1;i<m;i++){
days+=mdays[isleap(y)][i-1];
}
return days;
}
int main(void){
int year, month, day;
int retry;
do{
cout <<"년 : ";
cin>> year;
cout <<"월 : ";
cin >> month;
cout <<"일 : ";
cin>> day;
cout <<year<<"년의 "<<dayofyear(year,month,day)<<"일째입니다."<<endl;
puts("다시 할까요?(1--예/0--아니오) : ");
cin>>retry;
}while(retry==1);
return 0;
}
Q11) dayofyear() 를 1. while문 사용, 2. i, days 사용하지 말것
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;
// 각 달의 날 수
int mdays[][12] = {
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}
};
// year년이 운년인가?
int isleap(int year){
return (year % 4== 0 && year%100!=0) || year % 400 == 0;
}
int dayofyear(int y, int m, int d){
while(--m){ // 0이 아니면 == 참이면
d+=mdays[isleap(y)][m-1];
}
return d;
}
int main(void){
int year, month, day;
int retry;
do{
cout <<"년 : ";
cin>> year;
cout <<"월 : ";
cin >> month;
cout <<"일 : ";
cin>> day;
cout <<year<<"년의 "<<dayofyear(year,month,day)<<"일째입니다."<<endl;
puts("다시 할까요?(1--예/0--아니오) : ");
cin>>retry;
}while(retry==1);
return 0;
}
'코딩 > C++' 카테고리의 다른 글
C++ 알고리즘 - 검색 (0) | 2022.03.24 |
---|---|
C++ 알고리즘 연습문제 - 구조체 (0) | 2022.03.23 |
C++ 알고리즘 연습문제 - 함수사용 (0) | 2022.03.22 |
C++ - 배열 요소 (calloc 사용) (0) | 2022.03.20 |
백준 문제풀이 C++ [220303] - 브루트 포스, pair<type, type> (0) | 2022.03.03 |