点击蓝字关注我们

C语言渔夫打鱼晒网问题

如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔,两天晒一次网,编程实现当输入 2011 1 月 1 日以后的任意一天,输出该渔夫是在打渔还是在晒网。

实现过程:

(1) 自定义函数 leap(),用来判断输入的年份是否是闰年。

(2) 自定义函数 number(),用来计算输入日期距 2011 年 1 月 1 日共有多少天。

(3) main() 函数作为程序的入口函数,在 main() 函数中调用上面两个函数。程序代码如下:

#include

int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/

{

if (a%4==0&&a%100!=0||a%400==0)

/* 闰年判定条件 */

return 1;    /*是闰年返回1*/

else

return 0;    /*不是闰年返回O*/

}

int number(int year,int month,int day)

/*自定义函数 number() 计算输入日期距2011年1月1日共有多少天*/

{

int sum = 0, i, j, k;

int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};          /*数组a存放平年每月的天数*/

int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};          /*数组b存放闰年每月的天数*/

if(leap(year)==1)    /*判断是否为闰年*/

for(i=0;i

sum+=b[i];

/*是闰年,累加数组b前m-1个月份的天数*/

else

for(i=0;i

sum+=a[i];

/*不是闰年,累加数组a前m-1个月份的天数*/

for(j=2011;j

if (leap(j)==i)

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 晒网

技术要点:

本实例主要有以下两个技术要点:

(1) 判断输入的年份(2011 年以后包括 2011 年)是否为闰年,这里自定义函数 leap() 来进行判断。该函数的核心内容就是闰年的判断条件即能被 4 整除但不能被 100 整除,或能被 400 整除。

(2) 求输入日期距 2011 年 1 月 1 日有多少天。首先判断 2011 年距输入的年份有多少年,这其中有多少年是闰年就将 sum 加多少个 366,有多少年是平年便将 sum 加上多少个 365。

(3) 其次要将 12 个月每月的天数存到数组中,因为闰年 2 月份的天数有别于平年,故采用两个数组 a 和 b 分别存储。若输入年份是平年,月份为 m 时就在前面累加日期的基础上继续累加存储着平年每月天数的数组的前 m-1 个元素,将累加结果加上输入的日期便求出了最终结果。闰年的算法类似。

计算机与控制工程学院团委宣传部

材料来源:学习部

排版编辑:胡志信

执行编辑:蔡金晶

责任编辑:宋健栋

审      核:贺  毅

c语言判断闰年_大一C语言错题相关推荐

  1. c语言判断闰年星期几,C语言判断闰年

    输出1000年到2000年之间的所有闰年: #include #include #pragma warning(disable:4996) int main() { int year = 0; int ...

  2. c语言九三字符串的字母个数,C语言判断闰年和平年

    C语言判断闰年和平年 #includevoid fun(int year) { if((year%4==0&&year%100!=0)||(year%100==0&&y ...

  3. c语言判断整数_用c++编写闰年的判断基础程序

    其实c++语言与c语言有太多共同的东西,学习过c语言再学习c++语言就显得轻而易举.当然学过了c++再去学习c语言也是有一些帮助的(但是个人不提倡先学习c++在学c语言).由于现在经常看见有关闰年的程 ...

  4. 大一怎么学好c语言_大一C语言入门到底怎么学?

    大一C语言入门按照下面路线来,以及把下面的100道C语言编程案例学会就入门啦- 入门篇 1.什么是计算机语言 2.C语言的程序的结构 3.运行C语言的步骤与方法 4.了解简单的算法 5.怎么表示算法 ...

  5. python判断质数_使用Python语言判断质数(素数)的简单方法讲解

    本文主要向大家介绍了使用Python语言判断质数(素数)的简单方法,通过具体的实例让大家了解,希望对大家学习Python语言有所帮助. 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不 ...

  6. c语言中闰年的流程图_C语言-算法与流程图

    <C语言-算法与流程图>由会员分享,可在线阅读,更多相关<C语言-算法与流程图(22页珍藏版)>请在人人文库网上搜索. 1.目录,第一章 绪论 第二章 算法与流程图 第三章 数 ...

  7. 大一c语言程序课程报告,大一C语言课程设计.doc

    大一C语言课程设计 C语言课程设计报告 班 级: 电气1004 学 号: 201009334 姓 名: 雷海燕 指导教师: 王果 2011 年 07 月 18 日 1 基本题目 1.1题目 1.1 题 ...

  8. C语言初阶_初识C语言(1)

    凡是过往,皆为序章 期末考试结束了,真是感慨良多啊...... C语言编程题大家都做对了多少呢? 不管怎么样,都已经过去了.不管你学得怎么样,都可以在接下来的时间里,我们一起重新回顾一遍C语言初阶的知 ...

  9. JAVA语言教学重点_《JAVA语言》教学大纲

    <语言>教学大纲 课程代码: 课程总学分实验学分: 课程总学时数实验学时数: 一.课程目标 课程目的是培养学生对面向对象编程技术的理解和掌握,加强对学生"计算机编程思维" ...

最新文章

  1. tensor_proto.raw_data().empty() || !tensor_proto.float_data().empty() || !tensor_proto.double_data()
  2. 0227互联网新闻 | 腾讯与英特尔联合推出云游戏平台“腾讯即玩”;华为企业业务MWC现场发布数字平台...
  3. Ribbon-饥饿加载
  4. python查看文档的软件_Python __doc__属性:查看文档
  5. 中大博士偷偷做了这件事,今天终于曝光了...
  6. Flutter 权限申请
  7. Linux下部署ASP.NET服务连接oracle遇到的问题记录
  8. SQL Server 2016 新功能之综述
  9. 本田思域自动挡的使用技巧
  10. iOS原生地图开发进阶——使用导航和附近兴趣点检索
  11. 如何在word中的框中打钩、打叉
  12. activemq学习记录(二)(使用p2p模式和使用发布订阅模式去生产以及消费数据)
  13. java检测kafka是否连接成功,Kafka 消费者失败检测
  14. winxp笔记本和有线路由器通过网线连接情况下的设置方法
  15. 【编程题训练】统计射击比赛成绩
  16. 包装类,包装类的自动装箱和自动拆箱
  17. 构建自己的个人信息资料库
  18. 贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
  19. JAVA-20 从前端传数据到数据库
  20. cocos2d 屏幕適配_cocos2d-x 屏幕适配新解

热门文章

  1. 「第一弹」电子设计大赛应该准备什么?
  2. HDLBits答案(20)_Verilog有限状态机(7)
  3. python 修改json文件的value值,利用python修改json文件的val
  4. python图片找字_如何用python查找图像中的字母
  5. 矩阵拼接_TEC无缝拼接矩阵切换器(处理器)的技术
  6. 阿姆斯特朗数 matlab,数学实验报告
  7. 选择题微型计算机系统包括,全国计算机一级选择题专项训练及答案2016
  8. python进阶(十七)xml(下)
  9. SpringBoot启动流程分析(四):IoC容器的初始化过程
  10. JavaScript常用方法(工具类的封装)