循环结构:第几天 编写一道程序,输入三个正整数,表示某年某月某日,判断这一天是这一年的第几天 输入2013 7 12输出193 输入2012 5 15 输出136 c++
时间: 2024-12-01 09:29:05 浏览: 18
输入一个正整数,判断是不是素数(C++)
在C++中,我们可以使用循环结构和一些日期计算逻辑来解决这个问题。这里有一个简单的示例程序,它会根据给定的年、月、日来计算该天是一年中的第几天。我们将利用闰年规则来准确处理二月的天数。
```cpp
#include <iostream>
int is_leap_year(int year) {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
return 1; // leap year
else
return 0;
}
int days_in_month(int month, int year) {
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6: case 9: case 11:
return 30;
case 2:
return is_leap_year(year) ? 29 : 28;
default:
throw std::invalid_argument("Invalid month");
}
}
int main() {
int year, month, day;
std::cout << "Enter year, month, and day: ";
std::cin >> year >> month >> day;
int total_days = 0;
for (int i = 1; i < month; ++i) { // Sum up days in previous months
total_days += days_in_month(i, year);
}
total_days += day - 1; // Add the current day but subtract one since we counted the first day as 0
std::cout << "The given date (" << year << " " << month << " " << day << ") is the " << total_days + 1 << "th day of the year.\n";
return 0;
}
```
当你运行这个程序并输入如 `2013 7 12` 或者 `2012 5 15` 这样的数据,它会计算并输出正确的结果。
阅读全文