B - 简单暴力(计算今年第几天)

请你计算出 xx 年 yy 月 zz 日是 xx 年的第几天。

请注意闰年对答案的影响。

输入格式

一行三个整数,xx,yy 和 zz。(1583\le x\le 21001583≤x≤2100)。数据保证输入合法。

输出格式

一个整数,表示是第几天。

Sample Input

2016 3 1

Sample Output

61

Sample Input 2

1900 3 1

Sample Output 2

60

首先需要有if语句用来判断平年闰年,还要有一个可以从任何时段进入,直到底才脱出,首先想到了去掉break的switch语句,判断月份,月份越大,进入越靠上,后面我们还要给是闰年的年份的二月天数加上一,最后输出总天数。

#include<stdio.h>
int main(){
	int x,y,z,day=0;//定义输入的年月日和最后的输出的总天数day
	scanf("%d%d%d",&x,&y,&z);//输入年月日
	if(1583<=x&&x<=2100)//确保输入的年份为有效年份
	{
		switch(y){            //利用switch判断输入的月份,去掉break可以让他一直进行递加
			case 12:day+=30;
			case 11:day+=31;
			case 10:day+=30;
			case 9:day+=31;
			case 8:day+=31;
			case 7:day+=30;
			case 6:day+=31;
			case 5:day+=30;
			case 4:day+=31;
			case 3:day+=28;
			case 2:day+=31;
			case 1:break;
		}
		day+=z;        //把几号加入到总数day中
		if((x%4==0&&x%100!=0)||x%400==0)//判断是否为闰年
		{
			if(y>=2&&day>59)//在已是闰年的基础上判断是否需要给总天数加一
			day++;
		}
		printf("%d\n",day);//输出总天数
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值