C++中的switch case 语句

在接触流程控制语句switch case的时候,感觉这个很有意思,就花了点时间去慢慢的去深入了解它,并且和if语句一起嵌套使用,就找了个题目来练练手,
这个就是通过输入年份和月份,来判断年份是否为闰年,并且可以知道你输入的月份有多少天。

#include <iostream>
using namespace std;
void main(){
int year, month, mon;
	cout << "请输入年份和月份,并用空格隔开" << endl;
	cin >> year >> month;	
	if (month < 1 || month>12)
	{
		cout << "你输入的月份不正确!!!" << endl;
	}
	else {
		if ((year % 4 == 0 && year % 100 != 0) || year % 100 == 0)
		{
			mon = 1;
			cout << "你输入的年份是闰年。" << endl;
		}
		else
		{
			mon = 2;
			cout << "你输入的年份为普通年。" << endl;
		}
	}
	switch (month)
	{
	case 1:cout << "你输入的一月份共有31天"; break;
	case 2:
		if (mon==1)
		{
			cout << "你输入的二月份共有29天";
		}
		else
		{
			cout << "你输入的二月份共有28天";
		}; break;
	case 3:cout << "你输入的三月份共有31天" << endl; break;
	case 4:cout << "你输入的四月份共有30天" << endl; break;
	case 5:cout << "你输入的五月份共有31天" << endl; break;
	case 6:cout << "你输入的六月份共有30天" << endl; break;
	case 7:cout << "你输入的七月份共有31天" << endl; break;
	case 8:cout << "你输入的八月份共有31天" << endl; break;
	case 9:cout << "你输入的九月份共有30天" << endl; break;
	case 10:cout << "你输入的十月份共有31天" << endl; break;
	case 11:cout << "你输入的十一月份共有30天" << endl; break;
	case 12:cout << "你输入的十二月份共有31天" << endl; break;
	default:cout << "输入有误!" << endl;
		break;
	}
}

这个题目虽然说不是很难,可是也费了我不少的心神去弄,其实我并不是很清楚润年和平年是怎么的来的,无奈只有找了下度娘,得知
普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年, 1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
知道恍然大悟,为什么呢,因为闰年和普通年不同的地方在二月份,只要这里能够判断好,那么思路就很清晰了,就慢慢的摸索了出来,只是感觉这个代码太过于多了,应该还是可以进一步优化的。

  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值