三天打鱼两天晒网(c++)

设计题目:中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中                     是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题。

设计思路:1.先设定好起始的年月日,将平年和闰年的各月天数存入两个数组中,。

                  2.输入要查询的年月日,首先判断输入的年月日是否有误,若有误则报错,无误则继续进行。

                  3.判断起始年到查询年之间的年份是平年还是闰年,若为平年则加365,闰年加366。

                  4.判断查询年是平年还是闰年(此操作是为了考虑2月份的天数),则添加从起始月到查询月之间月份的天数,再添加                   查询日的天数

                  5.将年月日天数的总和除以5取余,若为1,2,3则为打鱼,其余则为晒网。

设计流程图:

设计代码:

#include <iostream.h>
#include <stdlib.h>
#include <math.h>
int main()
{
	int year=2010,month=1,day=1;                             //规定年、月、日
	int a[]={31,28,31,30,31,30,31,31,30,31,30,31};           //将平年各个月份天数存入数组
	int b[]={31,29,31,30,31,30,31,31,30,31,30,31};           //将闰年各个月份天数存入数组
	int i,m,c=0;
	int year1,month1,day1;
	cout<<"请输入年月日"<<endl;
	cin>>year1;
	cin>>month1;
	cin>>day1;

	if(month1>12 || day1>31)
	{
		cout<<"输入的月份或日期有误"<<endl;
	}
	else
	{
	     for(m=year;m<year1;m++)
		 {
            if(year%400==0 || (year%4==0 && year%100!=0))    //判断从2010年到指定年份中间的年份是否为闰年
			{
		        c+=366;                                       //闰年添加天数
			}
	        else
			{
		        c+=365;                                       //平年添加天数
			}
		 }
 

	     if(year1%400==0 || (year1%4==0 && year1%100!=0)) //判断输入的年份是否为闰年,若是则通过月日判断2月份应增加的天数
		 {
	        for(i=0;i<month1-1;i++)
			{
	            c+=b[i];                     //2月份为29天
			}
	        c+=day1;	                     //加上剩余的天数
		 }
    	else
		{
	    	for(i=0;i<month1-1;i++)
			{
	    	    c+=a[i];                     //2月份为28天
			}
	        c+=day1;                         //加上剩余的天数
		}

    	if(c%5==1 || c%5==2 || c%5==3)                     //判断得到的数字除以5后的余数,若为1,2,3,则为打鱼,其余为晒网
		{
    	    cout<<"fishing"<<endl;                         //输出打渔
		}
 	    else
		{
	        cout<<"relaxing"<<endl;                        //输出晒网
		}	
	    return 0;
	}
}

调试结果:

总结:此代码不是太复杂。没有定义其余类,只运用到了for循环以及if语句完成了代码,不是太难懂,仅仅是个人的想法。

发布了16 篇原创文章 · 获赞 3 · 访问量 1109

猜你喜欢

转载自blog.csdn.net/qq_41890177/article/details/88068431
今日推荐