C语言 打渔晒网问题 017

来源:互联网 发布:100offer只给程序员吗 编辑:程序博客网 时间:2024/05/23 02:01

#define _CRT_SECURE_NO_WARNINGS             //关闭安全检查#include <stdio.h>#include <stdlib.h>#define  begyear  2011 #define  begmonth  1#define  begday  1/*如果一个渔夫从2011年1月1日开始每三天打一次渔两天晒一次网,编程实现当输入2011年1月1日以后的任意一天输出该渔夫是在打渔还是在晒网?*///判断润年int leap(int year){int ret = 0;if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){ret = 1;}return ret;}//统计天数int days(int year, int month, int day){int temp = 0;int date[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };year -= begyear;while (year)                                   //统计年的天数{if (leap(year + begyear)){temp += 366;}else{temp += 365;}year--;}for (int i = 1; i < month; i++)               //统计月的天数{temp += date[i - 1];}temp += day;                                 //加上当月的天数return temp;}int main(){int year, month, day;int temp = 0;AAA:printf("请输入年月日:");    scanf("%d %d %d", &year, &month, &day);if (month > 12 || day > 31 || year < begyear){printf("你真笨?日期都能输错?,赶紧重新输入\n");goto AAA;}temp = days(year, month, day);if ((temp % 5) <= 3 && temp % 5 > 0)        //取5的余,1 - 3 就是打渔 其他都是晒网;{printf("打渔\n");}else{printf("晒网\n");}printf("距离天数有%d天\n", temp);          //打印天数system("pause");return 0;}

0 0