C语言I博客作业06

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业06
我在这个课程的目标是 熟练掌握C语言
这个作业在哪个具体方面帮助我实现目标 深化了以前学习的语句,更加了解if-else语句的用法
参考文献 Markdown基本语法

一.PTA实验作业

1计算火车运行时间

 题目内容描述:本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
 输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
 在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
输入样例:
 1201 1530
输出样例:
 03:29

(1)数据处理

 数据表达:用了整形变量n,m,a,b,n,m是用户传入的参数,a和b来保存输出的时间。
 数据处理:用了if-else语句,用了表达式a=n%100-m%100和b=n/100-m/100。

(2)实验代码截图

(3)造测试数据

输入数据 输出数据 说明
0101 0200 00:59 验证分钟是否借位
0100 0200 00:60 进行边界测试
1200 1401 02:01 验证读入和输出均是否有补0

(4)PTA提交列表及说明

提交列表说明

 1.部分正确:未考虑分钟需要借位问题,未做改动

 2.部分正确:未考虑分钟需要借位问题,未做改动

 3.部分正确:未考虑分钟需要借位问题,未做改动

 4.部分正确:未考虑分钟需要借位问题,将变量a分为大于0和小于0

 5.部分正确:,未考虑a=0,将a>0改为a>=0

2. 输出闰年

 题目内容描述输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
输入格式:
 输入在一行中给出21世纪的某个截止年份。
输出格式:
 逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。
输入样例1:
2048
输出样例1:
 2004
 2008
 2012
 2016
 2020
 2024
 2028
 2032
 2036
 2040
 2044
 2048
输入样例2:
 2000
输出样例2:
  Invalid year!

(1)数据处理

 数据表达:用了整形变量Y,i,o,,Y是用户传入的参数,a来保存输出的年份,i用来进行for循环。
 数据处理:用了if-else语句,用了表达式i<=((Y-2000)/4-Y/2100),用来循环出符合条件的每一个年份。

(2)实验代码截图

(3)造测试数据

输入数据 输出数据 说明
2012 2004,2008.2012 输入正常的21世纪年份,正好截止到某闰年
2000 Invalid year! 输入小于2001 非21世纪的年份
2011 2004,2008 输入21世纪内的年份
2500 Invalid year! 输入超过21世纪上界的年份
2002 None 输入没有闰年的年份

(4)PTA提交列表及说明

提交列表说明

 1.部分正确:小于2001 非21世纪的年份,21世纪内的年份,超过21世纪上界的年份,没有闰年,错误。if表达式的语句写的(2004<=Y<2100)而if里一下子只能判断一半边,后改为2004<=Y&&Y<2101。


 2.部分正确:小于2001 非21世纪的年份,21世纪内的年份,超过21世纪上界的年份,错误。(Y%100)这个表达式意味着当Y不能整除4时(Y%100的余数不等于0时)表达式为真,所以我将i<=((Y%100)/4-1)和i<=((Y%100)/4)改为i<=((Y-2000)/4-Y/2100)。


 3.部分正确:小于2001 非21世纪的年份,超过21世纪上界的年份,错误。 printf("Invalid year"),忘记加感叹号,改为 printf("Invalid year!")后,答案正确。

二.代码互评

同学( 杨 宇 )代码:

同学(柏朝晖)代码:

自己代码:

比较

 (1)1.2份代码第二行都加了int,而我的没有。(其实我只是忘记打int了,发现int不打也可以成功就没有码过了)
 (2)我使用了else,用了两个printf,而她们只用了一个printf。
 (3)第二份的代码比我的代码行数少,使用了更少的空间。

三.学习总结

1.学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第四周/9.16~9.22 7小时 100行 在屏幕上显示Hello World! 暂无
第五周/9.23~9.29 8小时 100行 求华氏温度对应的摄氏温度 暂无
第六周/9.30~10.6 30小时 200行 如何用 MinGW-w64 来编译C程序 暂无
第七周/10.7~10.13 24小时 300行 运用if语句完成各种数学程序 对于&&的用法不了解
第八周/10.14-10.20 24小时 300行 学会了for循环语句 暂无
第九周/10.21-10.28 24小时 300行 学会了如何去自定义一个函数 暂无
第十周/10.28-11.3 30小时 400行 学会了if-else语句的嵌入 对“(Y%100)这个表达式意味着当Y不能整除4时(Y%100的余数不等于0时)表达式为真”这句话不是很懂

2. 累积代码行和博客字数

3 .学习内容总结和感悟

(1)学习内容总结

(2) 学习体会


做这一次作业所用的时间比往常长了很多,主要是PTA上的题目是以往来最多的一次,做PTA时的心情如上图所示。
虽然总是错误让人很痛苦,但在做PTA的过程中我学到了更多的东西,逐渐掌握了函数的多分支,以及在分支结构中循环语句、if-else语句的嵌入,编译错误也越来越少。
希望慢慢的我做作业的速度越来越快吧。

posted @ 2019-11-02 17:38  sun-梦  阅读(1106)  评论(8编辑  收藏  举报