江中命 2019-11-16 11:01 采纳率: 100%
浏览 618
已采纳

急!三天打鱼两天晒网问题,帮忙看一下哪里出错?为什么通不过第一组测试用例?非常感谢。(不用啦已经修改成功了!超开心!

背景:
中国有句老话,"三天打鱼两天晒网”。假设渔民老张从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;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-16 14:02
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!