(C语言)关于渔夫打鱼问题
作者:互联网
如果一个渔夫从2011年1月1日开始没三天打一次鱼,两天嗮一次网
编程实现输入2011年1月1日后的任意一天,输出渔夫是在打鱼,还是在晒网`
#include<stdio.h>
int leap(int a) //自定义函数leap用来输入的年份是否为闰年
{
if(a%4==0&&a%100!=0||a%400==0)
return 1;
else
return 0;
}
int number(int year,int month,int day) //计算输入日期据2011年1月1日共有多少天
{
int sum=0,i,j,k;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //存放平年每月的天数
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31}; //存放闰年每月的天数
if(leap(year)==1)
for(i=0;i<month-1;i++)
sum=b[i]+sum; //是闰年累加b前m-1个月的天数
else
for(i=0;i<month-1;i++)
sum=sum+a[i];
for(j=2011;j<year;j++)
if(leap(j)==1)
sum+=366; //2011年到输入的年份之间是闰年的加366
else
sum+=365; //2011年到输入年份之间不是闰年的加365
sum+=day; //将前面累加的结果加上日期
return sum;
}
int main(){
int year,month,day,n;
printf("请输入年月日:\n");
scanf("%d%d%d",&year,&month,&day);
n=number(year,month,day); //调用number函数进行天数计算
if(n%5<4&&n%5>0) //余数是1,2,3时说明在打鱼,否者在晒网
printf("%d: %d: %d: 打鱼\n",year,month,day);
else
printf("%d: %d: %d: 晒网\n",year,month,day);
return 0;
}
输入年份的方法
2011 1 4 表示2011年1月4日
标签:打鱼,int,31,30,C语言,渔夫,year,2011 来源: https://blog.csdn.net/meridian002/article/details/88141891