如果不是IT学习,我想我一辈子不会碰这玩意儿- -
今儿的作业难倒是不难就是有点儿复杂,还有点儿复杂,还有点儿复杂,而且还有点儿复杂!
----------------------------------------------------------------------传说中的昏哥线--------------------------------------------------------------------------------
请分别输入年月日三个数值,计算出这是这一年的第几天?
(提示:要考虑闰年和2月的情况) /*题目一句话,答案一丢丢~*/
为了拙计的智商先列个一三五七八十腊
31 28 31 30 31 30 31 31 30 31 30 31 平年
31 29 31 30 31 30 31 31 30 31 30 31 闰年
#include<stdio.h>
void main()
{
int year,month,day;
int Jan=31,Feb=59,Mar=90,Apr=120,May=151,Jun=181,Jul=212,Aug=243,Sep=273,Oct=304,Nov=334; /*平年每个月份截止当月的总天数*/
printf("请输入年份(阿拉伯数字):");
scanf("%d",&year);
printf("请输入月份(阿拉伯数字):");
scanf("%d",&month);
printf("请输入日期(阿拉伯数字):"); /*分三次输入,完美的用户体验~*/
scanf("%d",&day);
int num;
switch(month)
{
case 1:
num=day;
break;
case 2:
num=Jan+day;
break;
case 3:
num=Feb+day;
break;
case 4:
num=Mar+day;
break;
case 5:
num=Apr+day;
break;
case 6:
num=May+day;
break;
case 7:
num=Jun+day;
break;
case 8:
num=Jul+day;
break;
case 9:
num=Aug+day;
break;
case 10:
num=Sep+day;
break;
case 11:
num=Oct+day;
break;
case 12:
num=Nov+day;
break;
}
if(year%4==0&&year%100!=0)
{
if(month>2)
{
num=num+1;
}
}
if(year%400==0)
{
if(month>2)
{
num=num+1; /*判断闰年情况,就在月份为2月以后的情况下总天数+1*/
}
}
printf("这是这一年的第%d天\n",num);
}
总体思路应该没问题,但是加减要仔细,而且截止月份要弄清楚,一开始经常赋值错误,还是要多多练习,熟能生巧吧~!
与F11诸君共勉,伙伴们加了个油~!