编写一个c++程序,输入三个正整数,表示某年某月某日,判断这一天是这一年的第几天? 输入2013 7 12 输出193 输入2012 5 15 输出136
时间: 2024-11-30 11:18:32 浏览: 30
这是一个C++程序,用于计算输入的日期是该年的第几天。程序首先会要求用户输入年、月、日三个正整数,然后根据输入的月份和日期计算出该日期是该年的第几天,并输出结果。
程序的具体实现方法是使用了一个switch语句,根据输入的月份计算出该月份之前的天数总和,然后再加上输入的日期即可得到该日期是该年的第几天。如果输入的月份有误,则会输出错误提示信息。
程序还考虑了闰年的情况,如果输入的年份是闰年且输入的月份大于等于3,则需要在计算天数总和时加上1。
下面是程序的具体实现代码:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int year; //定义年、月、日
int month;
int day;
int sum; //定义总共天数
cout << "请输入年、月、日" << endl;
cin >> year;
cin >> month;
cin >> day;
switch(month) {
case 1: sum = day; break;
case 2: sum = day + 31; break;
case 3: sum = day + 59; break;
case 4: sum = day + 90; break;
case 5: sum = day + 120; break;
case 6: sum = day + 151; break;
case 7: sum = day + 181; break;
case 8: sum = day + 212; break;
case 9: sum = day + 243; break;
case 10: sum = day + 273; break;
case 11: sum = day + 304; break;
case 12: sum = day + 334; break;
default: cout << "输入月份有误,请重新输入" << endl;
}
if ((((year % 4 ==0) && (year % 100 != 0)) || (year % 400 ==0)) && month >= 3) {
sum = sum +1;
} else {
sum = sum;
}
cout << "这一天是这一年的第" << sum << "天" << endl;
}