c语言200例 009 打鱼晒网问题
问题:中国有句俗语叫“三天打鱼两天晒网”。某人从2011年1月1日起便开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
思路:1.判断渔夫实在打鱼还是晒网,其实就是计算日期
2.所以就要求我们要进行日期的判断,判断年份是否为闰年
3.求日期距离2011年1月1日有多少天:
首先是判断距离2011有多少年,闰年的年份366,平年的年份355
int leap (int a)
{if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)return 1;elsereturn 0;
}
其次开始计算月份,月份为m的时候,加上m-1个月份对应的天数
int number (int year, int m, int d)
{int sum = 0, i, j, k, 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 <= m - 1; i++)sum += b[i];elsefor (i = 0; i <= m - 1; i++)sum += a[i];sum += d;return sum;
}
最后累加之后,取余来判断是闰年还是平年
if ((n % 5) < 4 && (n % 5) > 0)printf("%d %d %d 打鱼", year, mouth, day);elseprintf("%d %d %d 晒网", year, mouth, day);return 0;
运行结果如下
详细代码如下
#include<stdio.h>
#include<stdlib.h>
int leap (int a)
{if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)return 1;elsereturn 0;
} int number (int year, int m, int d)
{int sum = 0, i, j, k, 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 <= m - 1; i++)sum += b[i];elsefor (i = 0; i <= m - 1; i++)sum += a[i];sum += d;return sum;
}int main ()
{int year, mouth, day, n;printf ("请输入年月日:\n");scanf ("%d %d %d", &year, &mouth, &day);n = number (year, mouth, day);if ((n % 5) < 4 && (n % 5) > 0)printf("%d %d %d 打鱼", year, mouth, day);elseprintf("%d %d %d 晒网", year, mouth, day);return 0;
}
c语言200例 009 打鱼晒网问题相关推荐
- JavaScript网页特效-“渔夫打鱼晒网”程序设计
程序设计时,把可能需要反复执行的代码封装为函数,然后在需要执行该段代码功能的地方进行调用,这样不仅可以实现代码的复用,更重要的是可以保证代码的一致性,只需要修改该函数代码,则所有调用位置均得到体现.同 ...
- C语言练习题 打鱼晒网问题
题目: 一个渔夫从2011年1月1日起每三天打一次鱼,两天晒一次网,编程实现输入2011年1月1日后任意一天,输出当天是在打鱼还是晒网. 代码: #include <stdio.h> #i ...
- 68-C语言-打鱼晒网问题
问题: 正所谓三天打鱼两天晒网,你成为了一名渔夫,每三天第一次鱼,每两天打一次网,若你从2011年1月1日开始干活,请从键盘输入任意日期,问这天是打鱼还是晒网? 思路: 这个什么时候打鱼,什么时候晒网 ...
- 打鱼晒网问题(C++)
题目链接:https://www.bilibili.com/video/av21356335?p=3 问题描述:某人从1999年1月1日起开始三天打鱼两天晒网,计算输入的日期是打鱼还是晒网 问题分析: ...
- python练习, 打鱼晒网问题
如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔,两天晒一次网,编程实现当输入 2011 1 月 1 日以后的任意一天,输出该渔夫是在打渔还是在晒网. import time # 判断是 ...
- java捕鱼设计_java实现渔夫打鱼晒网
package com.example.demo.sample; import java.util.Scanner; /** * Desc :如果一个渔夫从 2015 年 1 月 1 日开始每三天打一 ...
- lisp源码 微盘_Lisp-200 LISP源码200例 - 下载 - 搜珍网
Lisp源码200例/3DIMYX.LSP Lisp源码200例/3DIMZS.LSP Lisp源码200例/AAR.LSP Lisp源码200例/ABL.LSP Lisp源码200例/ABLOCK. ...
- C语言试题七十七之请编写函实现渔夫打鱼晒网问题
- c语言200例 040 字符升序排列
要求:将已升序排好的字符串a和字符串b按升序并归到字符串c中输出 思路: 1.因为输入的字符串a和b是有序字符串,所以对数组a和b中的元素逐个比较 2.然后将较小的字符先放到数组c中,直到a或b中有一 ...
最新文章
- SpringBoot下的工作流Activiti开发
- 升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch “Xcode” Xcode 插件安装...
- 美团架构师写的Java面试宝典_2019最新美团java面试题及答案
- 蓝桥杯基础模块8_1:串口通信收发
- Android 属性动画ObjectAnimator使用demo,组合动画
- matlab 三维核密度图_Matlab精彩画图示例:三维网状图和三维曲面图
- 云+AI+5G时代,华为云已准备好多元化云服务架构
- ViewPager 无限循环遇到的坑 viewpager.setOffscreenPageLimit(2);
- Android扩展类方法,Android 扩展 uni小程序SDK 原生能力
- Java线程:新特征-线程池
- dataloader 源码_[莫烦 PyTorch 系列教程] 3.5 – 数据读取 (Data Loader)
- Mybatis在XML中写SQL比较运算符<=时报错解决方法
- 电工模拟接线软件 app_图文详解:户内配电箱的安装及接线方法 ,电气初学者必看!...
- 基于Retrofit框架的金山API翻译功能案例
- python gtk_python-gtk学习笔记
- 《番茄todo》APP广告的设计与制作
- 6.openCV调整图像大小新思路(cv2.resize和imutils.resize)
- 当兵的目标和计划_新兵下连时,一定要弄明白这三件事,对新兵及家长来说很有必要...
- oracle忘记某个用户密码,Oracle忘记用户名密码怎样恢复
- 在大公司做凤尾,还是在小公司做鸡头?如何选择