C语言解决“三天打鱼两天晒网”的问题?

您所在的位置:网站首页 1在c语言中是多少 C语言解决“三天打鱼两天晒网”的问题?

C语言解决“三天打鱼两天晒网”的问题?

2023-06-23 10:58| 来源: 网络整理| 查看: 265

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打     鱼两天晒网”,问这个人在以后的某一天是“打鱼”还是“晒网”?

    根据题意可以将解题过程分为三步:     (1)计算从1990年1月1日开始至指定日期共有多少天?     (2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除。     (3)根据余数判断他是“打鱼”还是“晒网”。         若余数为1,2,3,则他是在“打鱼”,否则他是在“晒网”。

    算法设计:             该算法为数值计算算法,要利用循环求出指定日期距1990年1月1日             的天数,并考虑到循环过程中的闰年情况。闰年二月为29天,平年             二月为28天。             判断闰年的方法是:如果(能被4整除并且不能被100整除)或者             (能被400整除)则该年是闰年;否则不是闰年。

#include"stdio.h" struct DATA //创建年月日类型的数据 { int year; int month; int day; }; int PanDuan(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return 1; } else return 0; } int JiSuan(struct DATA d, int today) { int year = 0; int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; // 一年12个月,每个月的天数。 /// 年的天数相加 for (year = 1990; year < d.year; year++) { if (PanDuan(year)) // 判断闰年还是平年,修改二月的天数 arr[2] = 29; else arr[2] = 28; //把一年的天数加起来 int j = 0; for (j = 0; j < 13; j++) { today += arr[j]; } } // 把月的天数也加起来 int month = 0; for (month = 0; month 0 && (day % 5) < 4) printf("距离今天共计:%d天,今天打鱼",day); else printf("距离今天共计:%d天,今天晒网",day); }

程序运行结果:

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3