题目:输入年月日,计算该天是该年的第多少天?(请使用 case)
分析:月份天数分为三种
31天的有:1、3、5、7、8、10、12
30天的有:4、6、9、11
28/29天的是2月,需要进行闰年与否的判断
/**<输入年月日&#xff0c;计算该天是该年的第多少天&#xff1f;(请使用 case) */
/**<需要判断是否为闰年&#xff1a;可以被4整除&#xff0c;但不能被100整除&#xff1b;能被400整除 */
#include
#include
int isLeapYear(int);
int main()
{
int year;
int mouth;
int day;
int num &#61; 0;
printf("输入年份1900-2200\n");
scanf("%d",&year);
printf("输入月份1-12\n");
scanf("%d",&mouth);
printf("输入日期1-31\n");
scanf("%d",&day);
switch(mouth)
{
case 12: num &#43;&#61; 30;
case 11: num &#43;&#61; 31;
case 10: num &#43;&#61; 30;
case 9: num &#43;&#61; 31;
case 8: num &#43;&#61; 31;
case 7: num &#43;&#61; 30;
case 6: num &#43;&#61; 31;
case 5: num &#43;&#61; 30;
case 4: num &#43;&#61; 31;
case 3: num &#43;&#61; 28;
case 2: num &#43;&#61; 31;
}
if(isLeapYear(year) && mouth>2)
num &#61; num &#43; 1;
num &#61; num &#43; day;
printf("%d年%d月%d日是这年的第%d天",year,mouth,day,num);
return 0;
}
int isLeapYear(int year)
{
if(((year%4&#61;&#61;0)&&(year%100!&#61;0))||(year%400&#61;&#61;0)) //判断为闰年
{
return 1;
}
else return 0;
}
运行结果&#xff1a;