一、问题描述
一个渔夫从1990年1月1日起开始“三天打鱼两天晒网”,问这人在以后的某一天是打鱼还是晒网
#include<stdio.h> typedef struct date//定义一个时间类的结构体 { int year; int month; int day; }Date; int runYear(int b)//写一个判断润年的函数 { if((b%400==0)||(b%100!=0&&b%4==0)) { return 1;//是闰年则返回真值1 } else return 0;//不是闰年则返回0 } int coutday(Date a)//写一个计算总天数的函数 { int permonth[13]={0,31,28,31,30,31,30,31,31,30,31,30};//初始化当闰年时候的月份天数 //特意设置13个的长度,为了将数组名月月份相对应 int year;//定义一个年份中间变量 int i; int totalday=0;//定义并初始化总天数 for(year=1990;year<a.year;year++)//利用年份的循环求出指定年份与1990年的天数累加和 { if(runYear(year))//条件判断,当该年为闰年 { totalday=totalday+366;//则总天数加上366天 } else totalday=totalday+365;//否则总天数加上365天 } if(runYear(a.year))//这里做到了修改二月的天数,如果为闰年,则2月份为29天 { permonth[2]++; } for(i=0;i<a.month;i++)//把指定日期前的月份加起来,指定日期所在月份不足一个月,不能加,跳出循环 { totalday+=permonth[i]; } totalday+=a.day;//把指定日期不足一个月的天数,也加进总天数 return totalday;//返回总天数的值,等待调用 } int main() { Date today;//初始化一个名为today的结构体对象 int totalday; int result; printf("请输入年月日,如1999 1 31\n");//提示用户输入,一定要有 scanf("%d%d%d",&today.year,&today.month,&today.day);//结构体以圆点的形式访问地址 totalday=coutday(today);//函数声明 result=totalday%5;//三天打鱼两天晒网,则周期为5天,总天数对5求余,若结果为1,2,3则打鱼, if(result>0&&result<4) { printf("今天打鱼"); } else printf("今天晒网"); return 0; }
文章来源地址https://www.toymoban.com/news/detail-412533.html
文章来源:https://www.toymoban.com/news/detail-412533.html
五、收获
到了这里,关于打鱼还是晒网问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!