解题思路:

既然是C++,用class代替struct也是很正常的吧。计算第几天就是建一个数组存放每个月有几天,然后把前面的月的天数加起来,加上day,最后闰年+1。


注意事项:

好像也没啥可说的。


参考代码:

#include <iostream>

using namespace std;

const int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 定义成13是为了方便对应数组下标

class Date {
	private:
		short year; // 年
		short month; // 月
		short day; // 日
	public:
		// 构造函数
		Date(short year, short month, short day) {
			this->year = year;
			this->month = month;
			this->day = day;
		}
		// 析构函数
		virtual ~Date() {
		}
		void countDay() {
			short count = day; // 计数
			for(int i = 1; i < month; i++) {
				count += days[i];
			}
			if((!(year % 4) && (year % 100)) || !(year % 400)) {
				count++; // 闰年则+1
			}
			cout << count << endl; // 可以return但没必要
		}
};

int main() {
	short year = 0;
	short month = 0;
	short day = 0;
	cin >> year >> month >> day; // 读输入
	Date date(year, month, day);
	date.countDay();
	return 0;
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论