输出月份天数

#include <stdio.h>

void main()
{
	int year,month;
	scanf("%d%d",&year,&month);
	switch(month)
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:printf("31\n");break;
	case 2:
		{
			if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
			   printf("29\n");
			else
				printf("28\n");
			break;
		}
	case 4:
	case 6:
	case 9:
	case 11:printf("30\n");break;
	default:printf("-1");break;
	}

}

 

<think>我们被要求编写一个C++程序,根据用户输入的月份输出该月的天数。注意:需要考虑闰年的情况,因为2月的天数在闰年和非闰年不同。步骤:1.用户需要输入月份(1-12),可能还需要输入年份(因为闰年判断需要年份)。2.对于1、3、5、7、8、10、12月,天数为31天。3.对于4、6、9、11月,天数为30天。4.对于2月,需要判断是否是闰年。闰年的规则:能被4整除但不能被100整除,或者能被400整除。程序结构:-输入年份和月份。-根据月份判断天数,如果是2月则根据闰年规则进一步判断。注意:用户输入月份时,我们假设输入整数1到12,分别代表1月到12月。代码示例:我们将使用基本的输入输出流,并包含必要的头文件。注意:我们使用usingnamespacestd;来简化代码,但在大型项目中应避免。实现:1.提示用户输入年份和月份。2.读取输入。3.使用switch语句if-else链判断月份。4.对于2月,判断闰年。我们将编写一个简单的程序。</think>### C++程序:根据月份输出天数 以下是一个完整的C++程序,根据用户输入的月份输出对应天数,并自动处理闰年情况: ```cpp #include <iostream> using namespace std; int main() { int year, month; // 获取用户输入 cout << "请输入年份: "; cin >> year; cout << "请输入月份(1-12): "; cin >> month; // 月份有效性检查 if (month < 1 || month > 12) { cout << "无效月份! 请输入1-12之间的数字" << endl; return 1; } // 处理各月份天数 switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: cout << "该月有31天" << endl; break; case 4: case 6: case 9: case 11: cout << "该月有30天" << endl; break; case 2: // 闰年判断:能被4整除但不能被100整除,或能被400整除 if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { cout << "该月有29天(闰年)" << endl; } else { cout << "该月有28天" << endl; } break; } return 0; } ``` ### 程序说明: 1. **输入处理**: - 用户需输入年份(用于判断闰年)和月份(1-12) - 包含基本的输入验证 2. **月份分类**: - 31天月份:1,3,5,7,8,10,12 - 30天月份:4,6,9,11 - 特殊月份:2月(天数取决于闰年) 3. **闰年判断逻辑**: ```cpp (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ``` 该条件满足格里高利历闰年规则[^1] 4. **错误处理**: - 当输入无效月份时返回错误码1 - 提示用户重新输入有效值 ### 使用示例: ``` 请输入年份: 2024 请输入月份(1-12): 2 该月有29天(闰年) ``` ``` 请输入年份: 2023 请输入月份(1-12): 4 该月有30天 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值