#include <stdio.h>
int main()
{
int y,m,d,sum;
scanf("%d%d",&y,&m,&d);
if (y<1||y>3000)
{
printf("ERROR");
}
else if((y%4==0&&y%100!=0)||(y%400==0))
{
switch (m)
{
case 1:sum=d;
case 2:sum=31+d;
case 3:sum=31+29+d;
case 4:sum=31+29+31+d;
case 5:sum=31+29+31+30+d;
case 6:sum=31+29+31+30+31+d;
case 7:sum=31+29+31+30+31+30+d;
case 8:sum=31+29+31+30+31+30+31+d;
case 9:sum=31+29+31+30+31+30+31+31+d;
case 10:sum=31+29+31+30+31+30+31+31+30+d;
case 11:sum=31+29+31+30+31+30+31+31+30+31+d;
case 12:sum=31+29+31+30+31+30+31+31+30+31+30+d;
printf("%d",sum);
}
switch (sum%5)
{
case 0:printf("晒网");break;
case 1:printf("打鱼");break;
case 2:printf("打鱼");break;
case 3:printf("打鱼");break;
case 4:printf("晒网");break;
}
}
else
{
switch (m)
{
case 1:sum=d;
case 2:sum=31+d;
case 3:sum=31+28+d;
case 4:sum=31+28+31+d;
case 5:sum=31+28+31+30+d;
case 6:sum=31+28+31+30+31+d;
case 7:sum=31+28+31+30+31+30+d;
case 8:sum=31+28+31+30+31+30+31+d;
case 9:sum=31+28+31+30+31+30+31+31+d;
case 10:sum=31+28+31+30+31+30+31+31+30+d;
case 11:sum=31+28+31+30+31+30+31+31+30+31+d;
case 12:sum=31+28+31+30+31+30+31+31+30+31+30+d;
printf("%d",sum);
}
switch (sum%5)
{
case 0:printf("晒网");break;
case 1:printf("打鱼");break;
case 2:printf("打鱼");break;
case 3:printf("打鱼");break;
case 4:printf("晒网");break;
}
}
}任意一年的第一天都是打鱼,这个代码为什么输出永远是晒网
啥都没看,只看了开头
光这个
scanf("%d%d",&y,&m,&d);
这行就写的不对.......
#include<stdio.h>
#define YEAR 2010
void main()
{
int year,month,day,y,days=0;
int num[13]=
{0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入正确的年月日(年月日用空格键隔开):\n");
scanf("%d%d%d",&year,&month,&day);
while(year<2010)
{
printf("年份输入过小,请重新输入:\n");
scanf("%d,%d,%d",&year,&month,&day);
}
/*当满足条件时,在二月基础加一天(因为是闰年)*/
if(year%400==0||
(year%4==0&&year%100!=0))
{
num[2]+=1;
}
/*判断输入年份是否为闰年*/
for(y=2010;y<year;y++)
{
if(y%400==0||(y%4==0 && y%100!=0))
{
/*闰年一年有366天*/
days+=366;
}
else
{
days+=365;
}
}
/*计算从2010年1月1日到输入年份总共多少天*/
for(y=1;y<month;y++)
{
days+=num[y];
}
days+=day;
printf("\n从2010年1月1日起到%d年%
d月%d日共经过了%d天\n\n",
year,month,day,days);
/*用计算出的总天数除以5,求余*/
if(days%5==3||days%5==2||days%5==1)
{
printf("%d年%d月%d日他在打鱼\n\n",year,month,day);
}
else
{
printf("%d年%d月%d日他在晒网\n\n",year,month,day);
}
}
编程思路:
1、判断输入的年份是闰年还是平年;
2、然后计算输入的年份到2010年1月1日一共有多少天;
3、然后天数,对5求余等于3.或者等于2或者等于1都是在打鱼;
4、其它在晒网。