故事简介
Tse是一位繁忙且巨穷的程序员,从2005年10月7日就开始就投身于计算机行业,拿着每月2000的工资为国家奉献,不过尽管如此,Tse生活仪式感满满,从投身工作第一天就开始规划了九日俩西餐的生活仪式,即从工作的那一天开始,9天为一个周期,前7天吃快餐,后2天吃西餐,以此来维持自己的精神状态和对生活的热爱。
不过最近,Tse的记忆力越来越差了,终于有一天,他忘记了今天是周期中的哪一天,该吃快餐还是西餐,于是,他决定编写一个程序,从而提醒他今天该吃什么。
程序流程图
程序模块
#include<stdio.h>
/*定义一个日期的结构体*/
typedef struct date{
int year;
int month;
int day;
}DATE;
int runYear(int); /*判断闰年函数*/
int countDay(DATE);/*求距离天数函数*/
void main()
{
DATE today; /*指定日期*/
int totalDay; /*指定日期距离*/
int result; /*暂存取余9后的结果*/
/*输入此时的年月日*/
printf("我是您的餐食助手,请输入今天的日期");
scanf("%d%d%d",&today.month,&today.month,&today.day);
/*利用countDay函数求出距离2005年10月7日的天数*/
totalDay=countDay(today);
/*判断吃快餐还是西餐*/
result=totalDay%9;
if(result>0&&result<=7)
printf("今天吃快餐,加油打工人!");
else
printf("辛苦了!今天吃西餐奖励一下吧");
}
int runYear(int year)
{
/*判断闰年条件*/
if((year%4==0&&year%100!=0)||(year%400==0))
return 1;
else
return 0;
}
int countDay(DATE currentDay)
{
/*数组第一个元素为0是为了数组下标和月份天数对应*/
int perMonth[13]={0,31,28,31,30,31,30,31,31,30,31,30};
int totalDay=0,i,year;
/*算出指定日期之前的每年的所有天数之和*/
for(year=2005;year<currentDay.year;year++)
{
/*判断是否为闰年*/
if(runYear(year))
totalDay=totalDay+366;
else
totalDay=totalDay+365;
}
/*如果是闰年,则二月份有29天*/
if(runYear(currentDay.year))
perMonth[2]+=1;
/*将本年内的天数累加到totalDay中*/
for(i=0;i<currentDay.month;i++)
totalDay+=perMonth[i];
/*将本月内的天数累加到totalDay中*/
totalDay+=currentDay.day;
return totalDay;
}
结果
今天是2024年9月26日,这也是Tse发表的第一篇博客,话不多说正好奖励Tse吃一份西餐吧~