`1 //当天的前一年离1990年有几天，再加上当年的天数，余数 1 2 3则打鱼，否则晒网 2 #include <iostream> 3 #include <cstring> 4 using namespace std; 5  6 const int a[2][13] = {0,31,28,31,30,31,30,31,31,30,31,30,31, 7 0,31,29,31,30,31,30,31,31,30,31,30,31} ; 8  9 typedef struct Node10 {11      int year,month,day;12 }Node;13 14 int is_leap(int year)15 {16      if(year%4==0&&year%100!=0||year%400 == 0)//符合短路表达式规则17           return 1;18      return 0;19 } 20 21 int sum_days(Node today)22 {23      int sum = 0;24      int i,j,k;25      for(i = 1990; i<today.year; i++)//没加等号，当天的前一年离1990年有几天，再加上当年的天数 26      {27           int flag = is_leap(i);28           if(flag)29                sum += 366;30           else31                sum += 365;32      }33      int tag = is_leap(today.year);34      for(i=1; i<today.month; i++)35           sum += a[tag][i];36      sum += today.day;//加上当月的天数 ,即便输入1990 1 1日， 则sum值为1,所以余数为1 2 3时打鱼，不是 0 1 2 37      return sum;38 }39 40 int main()41 {42      int i,j,k;43      Node today;44      cout<<"Input date:"<<endl;45      while(cin>>today.year>>today.month>>today.day)46      {47           int sum = sum_days(today);48           int mod = sum%5;49           if(mod>0&&mod<4)50                cout<<"打鱼"<<endl;51           else52                cout<<"晒网"<<endl;53      }54      return 0;55 }56      57      58      59`