生活中的数学问题(打鱼还是晒网)

来源:互联网 发布:知乎人力资源管理论文 编辑:程序博客网 时间:2024/04/27 17:58
/**************************************** *  File Name  : math.c *  Creat Data : 2015.1.24*  Author     : ZY *****************************************/ /*生活中的数学问题*//*打鱼还是晒网*//*中国有句俗话叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的每一天中是在“打鱼”,还是在“晒网”。*/#include <stdio.h>struct data //定义日期结构体{int year;int month;int day;};int days(struct data day){int i,lp;static int day_tab[2][13]= //二维数组形式作为参数{{0,31,28,31,30,31,30,31,31,30,31,30,31,},//平年每月的天数{0,31,29,31,30,31,30,31,31,30,31,30,31,},//闰年每月的天数};lp = day.year %4 == 0 && day.year %400 != 0 || day.year %100 == 0 ;//判定year为闰年还是平年,lp = 0为平年,lp = 1为闰年for( i = 1; i < day.month ;i++ )//计算本年中自1月1日起的天数{day.day += day_tab[lp][i];}return day.day ;}int main(){  struct data today;  struct data term;  int yearday,year,day;  printf("Enter year/month/day:");  scanf("%d%d%d",&today.year ,&today.month ,&today.day );//输入日期  term.month = 12;//设置变量的初始值:月  term.day = 31;//设置变量的初始值:日  for( yearday = 0,year =1990 ;year < today.year ;year++ )  {  term.year = year;  yearday += days(term);//计算从1990年至指定年的前一年共有多少天  }  yearday += days(today);//加上指定年中到指定日期的天数  day = yearday%5;//求余数(1,2,3)为打鱼,其余为晒网  if(day > 0 && day < 4)//打印结果  {  printf("He was fishing at the day.\n");  }  else  {  printf("He was sleeping at the day.\n");  }  return 0;}

0 0