快餐还是西餐(C语言编程01)

 

故事简介

        Tse是一位繁忙且巨穷的程序员,从2005年10月7日就开始就投身于计算机行业,拿着每月2000的工资为国家奉献,不过尽管如此,Tse生活仪式感满满,从投身工作第一天就开始规划了九日俩西餐的生活仪式,即从工作的那一天开始,9天为一个周期,前7天吃快餐,后2天吃西餐,以此来维持自己的精神状态和对生活的热爱。

        不过最近,Tse的记忆力越来越差了,终于有一天,他忘记了今天是周期中的哪一天,该吃快餐还是西餐,于是,他决定编写一个程序,从而提醒他今天该吃什么。


程序流程图

a8b3fa51ef254948a38fea208c34f3e4.png

 


程序模块

 

#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吃一份西餐吧~

a8d76280a123452f9b7ef213eebb52f0.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值