背景:
中国有句老话,"三天打鱼两天晒网”。假设渔民老张从1990年1月1日开始"三天打鱼两天晒网”,那么请你帮助推算出在以后某一天中,老张是在"打鱼”,还是在"晒网”。
输入:
第一行是测试的组数。以后每一行是一组要测试的时间,有三个数据,分为表示为年、月、日。
输出:
根据输入的日期,打印出相应的情况(打鱼还是晒网),具体格式见测试用例。
发现输入
1
1992 10 25这样单独一组数据也没有输出
但程序编译什么的都没有问题,思路应该也没有错阿!
想了很久了还是不明白。
#include
int main()
{
int year[100],mon[100],day[100],n,i,j,k,days,flag;
scanf("%d",&n);
int num[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(i=0;i
{
flag=1;
scanf("%d %d %d",&year[i],&mon[i],&day[i]);
if(year[i]%400==0||(year[i]%4==0&&year[i]%100!=0)) num[2]=num[2]+1;
if(year[i]9999) {printf("year is error!\n");flag=0;continue;}
if((mon[i]12)&&flag==1) {printf("month is error!\n");flag=0;continue;}
if((day[i]num[mon[i]])&&flag==1){printf("Day is error!\n");flag=0;continue;}
for(k=1990;k<year[i];k++)
{
if(k%400==0||(k%4==0 && k%100!=0)) days+=366;
else days+=365;
}
for(j=1;j<mon[i];j++)
{
days+=num[j];
}
days+=day[i];
if((days%5==3||days%5==2||days%5==1)&&flag==1)
printf("He was fishing on %d.%d.%d\n",year[i],mon[i],day[i]);
if((days%5==4||days%5==0)&&flag==1)
printf("He was basking on %d.%d.%d\n",year[i],mon[i],day[i]);
}
return 0;
}