【c语言】(switch)输入年月日,计算输出这一天是该年第几天

题目:

输入年,月,日,计算输出这一天是该年第几天。注:需要考虑是否 是闰年的情形,闰年2月为29天否则为28天。
提示:用switch-case控 制结构。

思路分析:
  1. 判断输入的月份,日期是否正常

  2. 判断是闰年还是平年,用leap单独存2月的天数

  3. switch结构不用break时可以连续运行,正好用在算天数上,从大的月份加到小的月份
    (记得存入的整月比输入月份小一)

  4. 整数月份的天数加上零头即为总天数

代码实现:
#include<stdio.h>
int main()
{
		int year = 0, month = 0, day = 0, leap = 0, dayth = 0;
		printf("Input year: ");
		scanf("%d",&year);
		printf("Input month: ");
		scanf("%d",&month);
		printf("Input day: ");
		scanf("%d",&day);
		if(month > 12 || month < 1)
		{
			printf("year out of limit\n");
		}
		if(day > 31 || day < 1)
		{
			printf(" month out of limit\n");
		}
		if(year%4 == 0 && year%100 != 0 || year%400 ==0)
		{
			leap = 29;
		}
		else
		{
			leap = 28;
		}
		month = month - 1;
		switch(month)
		{
			case 11 : dayth += 30;
			case 10 : dayth += 31;
			case  9 : dayth += 30;
			case  8 : dayth += 31;
			case  7 : dayth += 31;
			case  6 : dayth += 30;
			case  5 : dayth += 31;
			case  4 : dayth += 30;
			case  3 : dayth += 31;
			case  2 : dayth += leap;
			case  1 : dayth += 31;
		}
		dayth += day;
		printf("It's the %dth day of year %d'",dayth,year);
		return 0;
} 
运行结果:在这里插入图片描述
  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值