概述
8、某人从2000年1月1日起,开始“三天打鱼,两天晒网”。从键盘输入任意一天(年月日),问该人是在打鱼,还是在晒网?
//题意分析,其实相当于求任意一天距2000.1.1的日期 ,将天数t%5<=3是打鱼,否则晒网。
#include<stdio.h>
//自定义一个判断函数is_leap(),判断是否 x是否是闰年。
int is_leap(int x)
{
if( (x%4==0&&x%100!=0)||(x%400==0) ) //能被400整除或者被4整除而不被100整除的是闰年。
return 1;
return 0;
}
int main()
{
int a[13]={0,31,29,31,30,31,30,31,31,30,31,31,30}; //存储每月天数的数组。
int year,month,day;
printf("请输入天数:n");
while(scanf("%d %d %d",&year,&month,&day)!=EOF)
{
int i,t=0;
if(year<2000) {printf("程序出错!n"); continue;}
if(month>12||month<1) {printf("程序出错!n"); continue;}
if(day<1) {printf("程序出错!n"); continue;}
if(month==2&&is_leap(year)&&day>29) {printf("程序出错!n"); continue;}
if(month==2&&!is_leap(year)&&day>28) {printf("程序出错!n"); continue;}
if(month==(1||3||5||7||8||10||12)&&day>31){printf("程序出错!n"); continue;}
if(month==(4||6||9||11)&&day>30) {printf("程序出错!n"); continue;}
//从2000年到year-1年,总共的天数。
for(i=2000; i<=year-1; i++)
{
if(is_leap)
t+=366;
else
t+=365;
}
/********求第year年的天数************/
if(is_leap(year))
{
for(i=0; i<=month-1; i++)
{
t+=a[i];
}
t+=day;
}
else
{
if(month>2) t--;
for(i=0; i<=month-1; i++)
{
t+=a[i];
}
t+=day;
}
/************************************/
printf("第%d天nn",t);
/*******天数t%5<=3是打鱼,否则晒网***********/
if(t%5<=3&&t%5!=0)
printf("小明在打鱼!!!n");
else
printf("小明在晒网!!!n");
printf("n");
}
}
最后
以上就是长情巨人为你收集整理的三天打鱼,两天晒网的全部内容,希望文章能够帮你解决三天打鱼,两天晒网所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复