为什么要写if(flag==1&&month>2)

来源:4-17 switch与if语句的应用

慕粉1631391925

2017-04-05 22:16

#include <stdio.h>

int main() 

{

int year = 2008;

int month = 8;

int day = 8;

int sum,flag;


switch(month)

{

case 1:sum = 0;break;

case 2:sum = 31;break;

case 3:sum = 59;break;

case 4:sum = 90;break;

case 5:sum = 120;break;

case 6:sum = 151;break;

case 7:sum = 181;break;

case 8:sum = 212;break;

case 9:sum = 243;break;

case 10:sum = 273;break;

case 11:sum = 304;break;

case 12:sum = 334;break;

default:printf("一年只有12个月!");break;


}

sum = sum+day;

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

{

flag==1;

}

else

{

flag==0;

}

if(flag==1&&month>2)

sum++;

printf("%d年%d月%d日是该年的第%d天!",year,month,day,sum);


return 0;

}


我没写运行了一下,出错了,但我不理解为啥要写!直接判断闰年的循环之后就让sum = sum+day+flag;为啥不行

写回答 关注

1回答

  • 慕粉18874490166
    2017-04-05 22:46:55

    因为闰年的第二个月多一天,判断是闰年得加一天

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题