C语言算法之打渔晒网问题

如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。

代码如下:

 

#include 
int leap(int a)  /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
	if((a%4 == 0 && a%100 != 0 )|| a%400 == 0)  /*闰年判断条件*/
		return 1;                             /*是闰年返回1*/
	else
		return 0;                             /*不是闰年返回0*/
}
int number(int year,int m,int d)  /*自定义函数number()计算输入日期距2011年1月1日共有多少天*/
{
	int sum = 0,i,j,k,a[12]=
	{
		31,28,31,30,31,30,31,31,30,31,30,31
	};                            /*数组a存放平年每月天数*/
	int b[12] = 
	{
		31,29,31,30,31,30,31,31,30,31,30,31
	};                            /*数组b存放闰年每月的天数*/
	if(leap(year) == 1)            /*判断是否为闰年*/
		for(i = 0;i < m - 1;i++)
			sum += b[i];          /*是闰年,累加数组b前m-1个月份的天数*/
	else
		for(i = 0;i < m - 1;i++)
			sum += a[i];          /*不是闰年,累加数组a前m-1个月份的天数*/
	for(j = 2011;j 0)          /*当余数是1或2或3时说明在打渔,否则在晒网*/
		printf("%d-%d-%d 打渔\n",year,month,day);   
	else
		printf("%d-%d-%d 筛网\n",year,month,day);
}

运行结果:

请输入年月日

2015 5 5

2015-5-5 打渔

你可能感兴趣的:(C语言)