您的位置:首页 > 其它

生活中的数学问题(打鱼还是晒网)

2015-01-24 12:38 225 查看
/****************************************
*  File Name  : math.c
*  Creat Data : 2015.1.24
*  Author     : ZY
*****************************************/

/*生活中的数学问题*/
/*打鱼还是晒网*/
/*中国有句俗话叫“三天打鱼两天晒网”。某人从1990年
1月1日起开始“三天打鱼两天晒网”,问这个人在以后的
每一天中是在“打鱼”,还是在“晒网”。*/

#include <stdio.h>

struct data //定义日期结构体
{
int year;
int month;
int day;
};
int days(struct data day)
{
int i,lp;
static int day_tab[2][13]= //二维数组形式作为参数
{
{0,31,28,31,30,31,30,31,31,30,31,30,31,},//平年每月的天数
{0,31,29,31,30,31,30,31,31,30,31,30,31,},//闰年每月的天数
};
lp = day.year %4 == 0 && day.year %400 != 0 || day.year %100 == 0 ;
//判定year为闰年还是平年,lp = 0为平年,lp = 1为闰年
for( i = 1; i < day.month ;i++ )//计算本年中自1月1日起的天数
{
day.day += day_tab[lp][i];
}
return day.day ;
}

int main()
{
struct data today;
struct data term;
int yearday,year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year ,&today.month ,&today.day );//输入日期
term.month = 12;//设置变量的初始值:月
term.day = 31;//设置变量的初始值:日
for( yearday = 0,year =1990 ;year < today.year ;year++ )
{
term.year = year;
yearday += days(term);//计算从1990年至指定年的前一年共有多少天
}
yearday += days(today);//加上指定年中到指定日期的天数
day = yearday%5;//求余数(1,2,3)为打鱼,其余为晒网
if(day > 0 && day < 4)//打印结果
{
printf("He was fishing at the day.\n");
}
else
{
printf("He was sleeping at the day.\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: