(百例编程)11.打鱼还是晒网
2012-05-26 13:23
381 查看
题目:中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。#include<iostream> using namespace std; int panduan(int,int ,int); int main(void) { int year,mon,day; cout<<"现在为1990年1月1日,请输入你要查询的日期:"<<endl; cout<<"年份:"; cin>>year; cout<<endl; cout<<"月份:"; cin>>mon; cout<<endl; cout<<"日:"; cin>>day; cout<<endl; if (panduan(year,mon,day)) { int sum=panduan(year,mon,day); if (sum%5==1||sum%5==2||sum%5==3) { cout<<"在"<<year<<"年"<<mon<<"月"<<day<<"日"<<",将进行打鱼!"<<endl; } else if (sum%5==0||sum%5==4) { cout<<"在"<<year<<"年"<<mon<<"月"<<day<<"日"<<",将进行晒网!"<<endl; } cout<<"总天数为:"<<sum<<endl; } return 0; } /*日期合法性判断与计算*/ int panduan(int a,int b,int c) { int y=1990; int sumd=0,da;//是个信号量,1代表闰年,0代表平年 if (a>=1990&&(b>0&&b<13)&&(c>0&&c<32)) { if (a%4==0&&a%100!=0||a%400==0) { for (int i=1;i<b;i++) { switch(i) { case 1: da=31;break; case 2: da=29;break; case 3: da=31;break; case 4: da=30;break; case 5: da=31;break; case 6: da=30;break; case 7: da=31;break; case 8: da=31;break; case 9: da=30;break; case 10:da=31;break; case 11:da=30;break; case 12:da=31;break; default:break; } sumd+=da; } } else { for (int i=1;i<b;i++) { switch(i) { case 1: da=31;break; case 2: da=28;break; case 3: da=31;break; case 4: da=30;break; case 5: da=31;break; case 6: da=30;break; case 7: da=31;break; case 8: da=31;break; case 9: da=30;break; case 10:da=31;break; case 11:da=30;break; case 12:da=31;break; default:break; } sumd+=da; } } for (;y<a;y++) { if (y%4==0&&y%100!=0||y%400==0) { for (int i=1;i<=12;i++) { switch(i) { case 1: da=31;break; case 2: da=29;break; case 3: da=31;break; case 4: da=30;break; case 5: da=31;break; case 6: da=30;break; case 7: da=31;break; case 8: da=31;break; case 9: da=30;break; case 10:da=31;break; case 11:da=30;break; case 12:da=31;break; default:break; } sumd+=da; } } else { for (int i=1;i<=12;i++) { switch(i) { case 1: da=31;break; case 2: da=28;break; case 3: da=31;break; case 4: da=30;break; case 5: da=31;break; case 6: da=30;break; case 7: da=31;break; case 8: da=31;break; case 9: da=30;break; case 10:da=31;break; case 11:da=30;break; case 12:da=31;break; default:break; } sumd+=da; } } } sumd+=c; return sumd; } else { cout<<"输入日期有误或年份已过!"<<endl; return 0; } } |
相关文章推荐
- C++经典实用趣味编程百例(91)-人机猜数游戏
- Android编程示例之——WebView,判断JavaScript引擎是V8还是JavaScriptCore
- 11、Java并发编程:并发容器之CopyOnWriteArrayList
- 网络编程知识(11)--DNS
- Python学习笔记11:Python函数和函数式编程
- C/C++语言经典、实用、趣味程序设计编程百例精解(7)
- Visual C++ 时尚编程百例012(非模态对话框)
- Visual C++ 时尚编程百例014(限制鼠标)
- 工作流编程循序渐进(11:ASP.NET 3.5工作流编程入门)
- Linux笔记 11 -- 网络编程
- DirectX 11游戏编程学习笔记之2: 第1章Vector Algebra(向量代数)
- Spring进阶之路(11)-使用Aspectj切面配置和XML配置文件方式实现切面编程
- 《VC++深入详解》学习笔记[11]——第14章 网络编程
- 输入 年.月.日 判断这一天是打鱼还是晒网
- vb.net 教程 3-11 窗体控件综合编程 2-3
- 想编程,是勤奋自学还是去培训班学习?
- 改善C#编程的50个建议(11-15)
- 低功耗蓝牙4.0BLE编程-nrf51822开发(11)-蓝牙串口代码分析
- .NET数据库编程求索之路--11.一些思考
- 编程确定系统是32位还是64位