问题 |
答案 |
这个作业属于那个课程 |
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语句的嵌入,编译错误也越来越少。
希望慢慢的我做作业的速度越来越快吧。