中国有句俗语叫“三天打鱼,两天晒网”某人从2010年1月1日起开始“三天打鱼两天晒网”问这个人在以后的某一天是在“打渔”还是在“晒网”。我用的是C语言解决这个问题。
我写了两个程序,当然有代码2是淘汰版本的
源代码1
#include<stdio.h>
typedef struct{ //定义结构体类型
int year;
int month;
int day;
} Date;
void days(Date date) //声明days函数
{
inta,i,s=0,day,c=0;
intb[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//将每月的天数用数组形式表示出来
a=date.year-2010; // a为指定日期到2010有几年
for(i=0;i<a;i++) //循环判断这几年里有几个闰年
{
if(date.year%4==0&&date.year%100!=0||date.year%400==0)//判断闰年的条件
s++; //当出现闰年的时候,s就加上一天
}
for(i=0;i<date.month;i++) //循环计算月数
c=c+b[i]; //计算该月的前一个月到1月有多少天
day=365*a+s+c+date.day; //计算到2010年1月1日有多少天
if(day%5>0&&day%5<4) //通过余数判断该天是在打鱼还是晒网
printf("hewas fishing at that day.\n");
else
printf("hewas sleeping at that day.\n");
}
int main(void)
{
Date date; //定义一个Date类型的date变量
printf("pleaseinput year,month and day\n");