윤년 계산
#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;
}