我是靠谱客的博主 伶俐毛豆,最近开发中收集的这篇文章主要介绍c语言实例--打渔晒网问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

思路先行:

        第一步:先判断输入的年份是否为闰年,闰年366天,平年365天;

        第二步:计算从2018年1月1日起到以后某年的总天数;

                    2.1:先判断是否为闰年

                    2.2:再分别定义平年数组的月份和闰年数组的月份,再加上当年月的月份-1的天数;

                    2.3:接下来,在从2018年起,年份的个数;

                    2.4:最后,加上输入年份的日期个数。

        第三步:判断“三天打渔,两天晒网”的含义:1,2,3,4,5,6,7,8,9,10.....可以发现以5为周期,余数为1,2,3的为打渔,为0,4的是晒网。

代码如下:

#include <stdio.h>
//引用头文件
int leap(int a)
//第一步:判断是否为闰年:能被4整除,但被100整除,或者能被400整除
{
if(a%4==0 && a%100!=0 ||
a%400==0)
return 1;
//是闰年返回1
else
return 0;
//平年返回0
}
//第二步:
int number(int year,int month,int day)
//定义年月日和距离2018年1月1日的总数n
{
int sum=0,int i,j;
//定义天数总和sum,变量i,j;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
//定义平年的12个月份
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};	//定义闰年的12个月份
if(leap(year)==1)
//判断是否为闰年
for(i=0;i<month-1;i++)
//是闰年,累加数组b前month-1个月份的天数
sum +=b[i];
else
for(i=0;i<month-1;i++)
//是平年,累加数组a前month-1个月份的天数
sum +=a[i];
for(j=2018;j<year;j++)
//从2018年1月1日起,开始计算总天数
if(leap(j)==1)
sum +=366;
//是闰年,直接加上366天
else
sum +=365;
//是平年,直接加上365天
sum +=day;
return sum;
//最后,加上天数分总和
}
//第三步:
void main()
{
int year,month,day,n;
printf("请输入您想判断的年月日:");
scanf("%d%d%d",&year,&month,&day);
//输入年月份
n=number(year,month,day);
if((n%5)>0 && (n%5)<4)
//注意:1,2,3,4,5,6,7,8,9,....每三天打一次渔,两天晒一次网,循环天数为5,并且余数为1,2,3的为打渔,4,5的为晒网
printf("%d年%月%d日:打渔n",year,month,day);
else
printf("%d年%d月%d日:晒网n",year,month,day);
}

输出结果如下:


最后

以上就是伶俐毛豆为你收集整理的c语言实例--打渔晒网问题的全部内容,希望文章能够帮你解决c语言实例--打渔晒网问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部