C语言 打渔晒网
来源:互联网 发布:编程实现arp协议c语言 编辑:程序博客网 时间:2024/05/18 15:07
题目:中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”?
#include<stdio.h>
#include<string.h>
#include<math.h>
const int year=1990;
const int num[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
//获取输入字符,判断并转换成数字
int GetDate()
{
int number=0;
char a[20];
scanf("%s",a);
for(int i=0;i<strlen(a);i++)
{
if(a[i]<'1'||a[i]>'9')
{
printf("/n不能包含非数字字符!请重新输入:");
break;
}
else
{
number=(a[i]-'0')*(int)pow(10,(strlen(a)-1-i))+number;
}
}
return number;
}
///计算是否闰年
int CalculateYear(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
else
return 0;
}
///获取月份的间隔天数
int GetM_Days(int y,int m,int d)
{
int M_days=0;
for(int i=1;i<m;i++)
M_days=M_days+num[CalculateYear(y)][i];
M_days=M_days+d;
return M_days;
}
///计算年份的间隔天数
int GetY_Days(int y)
{
int Y_days=0;
for(int i=year;i<y;i++)
{
if(CalculateYear(i))
Y_days=Y_days+366;
else
Y_days=Y_days+365;
}
return Y_days;
}
///获取全部的间隔天数
int GetDays(int y,int m,int d)
{
int days=0;
if(y==year)
return GetM_Days(y,m,d);
else
return (GetY_Days(y)+GetM_Days(y,m,d));
}
void main()
{
int y=0,m=0,d=0,f=1;
//f作为是否正确输入日期的判断标志
while(f)
{
printf("请输入1990年1月1日之后的一个日期(只能使用数字,回车键作为年月日数字之间的间隔):/n");
printf("请输入年份:");
y=GetDate();
printf("请输入月份:");
m=GetDate();
printf("请输入日期:");
d=GetDate();
if(y<year||m<1||d<1)
{
printf("输入日期错误!(日期不能早于1990年1月1日,月份与日期不能小于1)/n/n");
continue;
}
else if(m>12||d>num[CalculateYear(y)][m])
printf("输入日期错误!(月份不能大于12,日期不能超出当月最大日期)/n/n");
else
{
f=0;
}
}
printf("***************/n");
printf("今天是第%d天。/n",GetDays(y,m,d));
switch(GetDays(y,m,d)%5)
{
case 0:
printf("今天晒网。/n");
break;
case 1: //与3同
case 2: //与3同
case 3:
printf("今天打渔。/n");
break;
case 4:
printf("今天晒网。/n");
break;
}
printf("***************/n");
}
- C语言 打渔晒网
- C语言 打渔晒网问题 017
- C语言
- C语言
- C语言
- C语言
- C语言
- c语言
- C语言
- C语言
- C语言
- C语言
- c语言
- C语言
- C语言
- C语言
- c语言
- C语言
- MyEclipse断点调试文章-tomcat
- 初识 C# 结构和类的区别
- linux 下 apache php-cgi 安装及配置(便于理解)
- USB协议简介
- flex 1037:包不能嵌套
- C语言 打渔晒网
- (转)玩转Solaris10 zone
- 房地产行业软件ApartmentSales开源版发布
- [转]linux串口资料
- 一个链接让你轻松搞定网页天气预报
- MYSQL 导入 txt文件 ---转
- MFC学习笔记之:列表框(ListBox) 常用的的操作详解
- 确定hive shell的java进程的pid的一种方法
- LOG4J 入门