输入某一年的第几天,计算并输出它是这一年的几月几日(要求考虑闰年)。
时间: 2024-03-11 08:46:42 浏览: 72
好的,这是一个简单的 C++ 编程题。以下是代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int year, day;
cout << "请输入年份和天数,用空格隔开:";
cin >> year >> day;
bool leapYear = false; // 判断是否为闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
leapYear = true;
int daysOfMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每个月的天数
if (leapYear)
daysOfMonth[1] = 29; // 闰年2月有29天
int month, date;
for (int i = 0; i < 12; i++)
{
if (day <= daysOfMonth[i])
{
month = i + 1;
date = day;
break;
}
day -= daysOfMonth[i];
}
cout << "该日期为:" << year << "年" << month << "月" << date << "日" << endl;
return 0;
}
```
代码解析:
1. 首先,读入年份和天数。
2. 判断年份是否为闰年。
3. 定义一个数组存储每个月的天数,如果是闰年,将2月的天数改为29天。
4. 循环遍历每个月,如果天数不足一个月,则该天属于该月。
5. 输出年、月、日。
注意事项:
1. 闰年的判断:能被4整除但不能被100整除的年份或者能被400整除的年份为闰年。
2. 数组下标从0开始,所以输出月份时需要加1。
3. 可以用 `switch` 语句代替循环判断月份,但是需要注意 `break` 的使用。
阅读全文