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语句的嵌入,编译错误也越来越少。
希望慢慢的我做作业的速度越来越快吧。

 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号