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

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

背景:
中国有句老话,"三天打鱼两天晒网”。假设渔民老张从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
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏