中国有句俗语叫“三天打鱼两天晒网”。 某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”
此题目难度不大,主要难度在于所给日期闰年判定以及经过的年份中闰年的个数问题,
对于输入日期的中日正确性判断,只需建立对应月份天数的数组即可判断。求出所给年份到初始年份经过的天数后对五取余判定是否大于三即可求出结果。
代码如下:
/*中国有句俗语叫“三天打鱼两天晒网”。
某人从2010年1月1日起开始“三天打鱼两天晒网”,
问这个人在以后的某一天中是“打鱼”还是“晒网”。*/
#include<iostream>
#include<fstream>
using namespace std;
class Date
{private:int year, month, day;
public:Date(int x, int y, int z);int fun(Date &A);
};
Date::Date(int x, int y, int z)
{year = x;month = y;day = z;
}
int Date::fun(Date &A)
{int thenumber = 0; //在所给年份到初始年份的天数int psnd = 0;int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };if (((this->year % 4 == 0 && this->year % 100 != 0) || this->year % 400 == 0))// 校正闰年2月份天数{days[2] ++;}if (this->year < 2010) //判断年输入正确性{cerr << "年份不得小于2010!" << endl; return 0;}else if (this->month < 0 || this->month > 12) //判断月输入正确性{cerr << "月份输出有误" << endl; return 0;}else if (this->day > days[this->month]) //判断日输入正确性{cerr << "日输入有误" << endl; return 0;}else //计算从输入日期到初始日期的天数{for (int i = 2010; i < this->year; i++) //在所给年份到初始年份中闰年的个数{if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)psnd++;}thenumber = (this->year - A.year) * 365 + psnd;for (int i = 0; i < this->month; i++){thenumber += days[i];}thenumber += this->day + 1;return thenumber;}
}
int main()
{int judge, flag;int Innumber; //输入数据int Fnumber; //测试数据int cyear, cmonth, cday;Date First(2010, 1, 1); // 初始年月日cout << "请选择输入方式:" << endl << "1、手动输入方式" << endl << "2、文件输入方式:";cin >> flag;if (flag == 1){cout << "please input a date:";cin >> Innumber;cyear = Innumber / 10000; //分离年cmonth = Innumber % 10000 / 100; //分离月cday = Innumber % 100; //分离日Date InputNum(cyear, cmonth, cday);if (InputNum.fun(First)){judge = InputNum.fun(First) % 5;if (judge > 3) //判断该天进行的活动cout << " 今天晒网。" << endl;elsecout << " 今天打鱼。" << endl;}}else if (flag == 2){ifstream infile("in.txt", ios::in);infile >> Fnumber >> Innumber; //从文件中读取数据cout << "文件输入日期为:" << Innumber << endl << "开始活动日期(初始日期)为:" << Fnumber << endl;infile.close();cyear = Innumber / 10000; //分离年cmonth = Innumber % 10000 / 100; //分离月cday = Innumber % 100; //分离日Date InputNum(cyear, cmonth, cday);if (InputNum.fun(First)){judge = InputNum.fun(First) % 5;ofstream outfile("out.txt", ios::out);if (judge > 3) //判断该天进行的活动outfile << Innumber << " 该天晒网";elseoutfile << Innumber << " 该天打鱼";outfile.close();}}elsecerr << "序号有误!" << endl;return 0;
}
中国有句俗语叫“三天打鱼两天晒网”。 某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”相关推荐
- 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
问题描述:中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是&q ...
- 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用java实现程序解决问题。
一丶中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是" ...
- 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”
问题: 中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是&qu ...
- 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题
/* 中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网", 问这个人在以后的某一天中是"打鱼"还是&qu ...
- Java---中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
已经实现的功能: 从键盘输入指定的年.月.日: 计算从2010年1月1日至指定日期共有多少天: 由于"打鱼"和"晒网"的周期为5天,所以将计算出的天数用5去除. ...
- 中国有句俗语叫“三天打鱼两天晒网”,某人从90年1月1日起开始“三天打鱼两天晒网”。问这个人在以后的某一天中是在“打渔”,还是在“晒网”(数组,循环,函数)
中国有句俗语叫"三天打鱼两天晒网",某人从90年1月1日起开始"三天打鱼两天晒网".问这个人在以后的某一天中是在"打渔",还是在" ...
- 7-16 三天打鱼两天晒网 (15分) 中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
7-16 三天打鱼两天晒网 (15分) 中国有句俗语叫"三天打鱼两天晒网".假设某人从某天起,开始"三天打鱼两天晒网",问这个人在以后的第N天中是"打 ...
- 中国有句俗语叫“三天打鱼两天晒网”。假设某人从说明某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
中国有句俗语叫"三天打鱼两天晒网".假设某人从说明某天起,开始"三天打鱼两天晒网",问这个人在以后的第N天中是"打鱼"还是"晒网& ...
- 中国有句俗语叫“三天打鱼两天晒网”,某人从90年1月1日起开始“三天打鱼两天晒网”。问这个人在以后的某一天中是在“打渔”,还是在“晒网”. **输入格式要求:“%d%d%d“ 提示信息:“Enter
中国有句俗语叫"三天打鱼两天晒网",某人从90年1月1日起开始"三天打鱼两天晒网".问这个人在以后的某一天中是在"打渔",还是在" ...
最新文章
- 1:1 人脸比对 开源_Hacktoberfest:我的开源门户
- PE 学习(七)第七章:资源表
- cmd 顺序启动服务_window下启动redis步骤和服务报错解决办法
- Pawel wojs:《全面战争:三国》美术概览
- Linux 服务器程序规范、服务器日志、用户、进程间的关系
- Mac OS X上安装配置apache服务器
- go使用cli实现命令行多指令操作
- Steve Yegge -Execution in the Kingdom of Nouns
- Matlab R2010b 破解安装
- html用户注册md5,用web浏览框实现MD5加密
- 【Nginx服务优化与防盗链】
- 建设城市之智慧灯杆网关
- MySQL锁与事务知识结构脑图
- 穿越(pass through)
- Docker学习总结(46)——生产环境中遇到的Docker常见异常错误总结
- Java-购物车实践与应用
- HTML5期末大作业:餐饮网站设计——餐饮店铺(1页) web前端设计与开发期末作品/期末大作业
- java封神OL_MobaXterm:远程终端登录软件封神选手
- 混合型数据的邻域条件互信息熵属性约简算法
- 百分制转换为等级制(Centesimal-grade to Letter-grade)利⽤switch语句编写⼀个程序,把⽤数字表示的成绩转化为字⺟表示的等级。
热门文章
- October cms-Backend (后端-表单)
- 2017考研复试:过来人总结经验教训
- sql服务器支持版本,支持的版本和版本升级 (SQL Server 2017)
- “文件或目录损坏且无法读取”的简单修复
- “安超云ArSDN”荣获“信息基础设施优秀解决方案”
- 学徒浅析Android——Android原生下载机制针对0K大小文件下载异常的分析
- SAP ABAP ChatGPT 初体验 我会失业吗?
- 2019数字中台/CRM 十大新闻出炉:期待企业服务大变局!
- kafka如何扩容分区Partition、并重新分区
- hazelcast java_Hazelcast: Java分布式内存网格框架(平台)