是一个三天打鱼两天晒网题,但是我不太知道要怎么描述天数
int N;
scanf("%d", &N);
int t = N % 5 + 1;
if (t <= 3)
printf("Fishing in day %d", N);
else
{
printf("Drying in day %d", N);
}
t=N%5+1
t<=3 打鱼
t>3 晒网
# include <stdio.h>
struct date
{
int year;
int month;
int day;
}; /*定义结构体类型 */
void Days(struct date days)
{
int sum = 0; /* 记录输入日期距2010年1月1日的总天数 */
int sum1 = 0; /* 记录所输日期那一年已经过的天数 */
switch(days.month-1)
{
case 11:
sum1+=30;
case 10:
sum1+=31;
case 9:
sum1+=30;
case 8:
sum1+=31;
case 7:
sum1+=31;
case 6:
sum1+=30;
case 5:
sum1+=31;
case 4:
sum1+=30;
case 3:
sum1+=31;
case 2:
if((days.year%4==0 && days.year%100!=0) || days.year%400==0)
sum1+=29; /* 闰年二月有29天 */
else
sum1+=28; /* 平年二月有28天 */
case 1:
sum1+=31;
}
sum1+=days.day;
if(days.year==2010)
sum = sum1-1;
else if(days.year>2010)
{
int sum2 = 365; /* 计算从2010年1月1日起这一年所剩余的天数 */
int sum3 = 0; /* 记录从2010年到所输入年之间的整数年的天数 */
int i;
for(i = 2010; i<days.year-1; i++)
if((days.year%4==0 && days.year%100!=0) || days.year%400==0)
sum3+=366; /* 闰年有366天 */
else
sum3+=365; /* 平年有365天 */
sum = sum1+sum2+sum3;
}
int x = sum%5; /* 通过总天数sum对5取余的余数来判断打渔还是晒网 */
if(x>0 && x<4)
printf("今天打渔!\n"); /* 若总天数sum对5取余的值为1、2、3时,则打渔 */
else
printf("今天晒网!\n"); /* 若总天数sum对5取余的值为0、4时,则晒网 */
}
void main(void)
{
struct date days; /* 定义结构体类型变量days */
printf("从2010年1月1日起,请输入年、月、日。如:2017、9、11 \n");
scanf("%d、%d、%d", &days.year, &days.month, &days.day); /* 输入要判断的具体日期 */
int L = (days.year%4==0 && days.year%100!=0 || days.year%400==0); /* L==1为闰年, L==0为平年 */
while(days.year<2010 || days.month>12 || days.day>31)
{
if(days.month==2)
if(((L==1) && (days.day>29)) || ((L!=1) && (days.day>28)))
{
printf("您的输入不合法,请重新输入!\n");
scanf("%d、%d、%d", &days.year, &days.month, &days.day);
}
else
break;
else
{
printf("您的输入不合法,请重新输入!\n");
scanf("%d、%d、%d", &days.year, &days.month, &days.day);
}
} /* while循环判断所输入的日期是否合法 */
Days(days); /* 调用Days函数*/
}