C언어 자신 있는 분만
새콤이
달력 만들다가 문제 해결이 안되서 이렇게 올립니다질문 요약 :1년 1월 1일을 기준으로 윤달은 4년마다 돌아오고 100년은 윤달이 아니며 400년은 윤달입니다
지금 짠 코드는 매년 1월1일은 해결이 되나 2월부터 제대로 수행을 하지못하고있는것같습니다
함수 및 배열쓰기 힘드네요 ㅠ
워낙 초보라 보니고민을 해봐도오류만불러오네요..ㅠ
코드 수정좀 부탁드립니다
질문 내용 :
#includestdio.h
int year_input(void);
int month_input(void);
int main(void)
{
int i,j,k;
int year;
int yeartotal=0;
int month;
int yoil=0, flag=0; // 요일 초기값 설정
int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
year = year_input(); //연도입력값저장
month = month_input(); // 달입력값저장
for(i=1;iyear;i++){
if (i%4==0) {
if(i%100==0){
if(i%400==0){
yeartotal+=366;
flag=1;
continue;
}
yeartotal+=365;
flag=0;
continue;
}
yeartotal+=366;
flag=1;
}
else {
yeartotal+=365;
flag=0;
}
}
yoil = ((yeartotal+1)%7);
if (yoil==-1){
yoil=6;
}
for(j=1;jmonth;++j){
if(flag==1){
day[1]=29;
}
else if (flag==0){
day[1]=28;
}
yoil=(yoil+day[j])%7;
}
printf(\n%d년도%d월달력\n,year,month);
printf(일 월 화 수 목 금 토 \n);
for (j=0;jyoil;j++) //공백만들기
{
printf( );
}
for(k=1; k=day[month-1]; ++k)
{
printf(%d ,k);
if (k10)
printf( );
if ((yoil+k)%7==0)
printf(\n);
}
printf(\n);
return 0;
}
int year_input(void)
{
int year;
printf(연수를입력하시오: );
scanf(%d,&year);
return year;
}
int month_input(void)
{
int month;
printf(월수를입력하시오: );
scanf(%d,&month);
return month;
}