C语言I博客作业06

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9826
我在这个课程的目标是 熟悉多分支结构、字符型数据类型和逻辑运算符
这个作业在那个具体方面帮助我实现目标 用C语言编写程序时用到多分支结构,逻辑运算符等
参考文献 《C语言程序设计》

一、PTA实验作业

1.1计算火车运行时间

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

1.1.1数据处理

数据表达:先用int定义了四个整型变量h、m、a、b。hh和mm分别用来表示两位小时数和两位分钟数。a和b分别用来表示火车的出发时间和到达时间。
数据处理:需要注意出发和到达是在同一天内,通过计算h=(b/100)-(a/100)可以得到火车运行时间的两位小时数,通过计算m=(b%100)-(a%100)可以得到两位分钟数。还运用了if语句进行判断,当m<0(即出发时间的两位分钟数小于到达时间的两位分钟数),这时候要执行h=h-1和m=60+m(即将一个小时换算成60分钟,使输出的两位分钟数为正 )。由于题目给出的输出格式为hh:mm,所以调用printf()函数时格式控制为%02d:%02d才能输出正确答案。

1.1.2实验代码截图

1.1.3造测试数据

输入数据 输出数据 说明
1201 1530 03:29 示例
0800 1300 05:00 整点出发,整点到达
0000 2359 23:59 能用的最久时间
0537 1109 05:32 上午出发,上午到达

1.1.4PTA提交列表及说明

答案错误:调用printf()函数输出时,格式控制%和d中间没加02,导致输出的小时和分钟没有取成两位整数。

1.2输出闰年

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

1.2.1 数据处理

数据表达:用int定义了两个整型变量year、i。置i为2001。year指输入的21世纪的某个截止年份。
数据处理: 题目中给出了输出的三种情况。运用if-else语句进行判断,如果输入的年份小于2001或大于2100(即非21世纪的年份)输出"Invalid year!"。否则(即输入年份属于21世纪),运用for语句执行循环,当输入年份为闰年时(此时判断的逻辑关系式为(i%4==0&&i%100!=0)||(i%400==0)),输出21世纪中截止该年份以来的所有闰年年份。第三种情况我也运用了if语句,当输入年份大于2000且小于2003时,不存在任何闰年。

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
2000 Invalid year! 不是21世纪的年份
2003 None 不存在任何闰年
2020 2004 2008 2012 2016 2020 是21世纪年份,且存在闰年

1.2.4 PTA提交列表及说明

编译错误:在调用if语句时,没有在(i%4==0&&i%100!=0)||(i%400==0)两边加上括号,导致编译错误。

二、代码互评

2.1.1题目截图

2.1.2自己代码截图

同学代码截图

相同之处:都设置了六个变量(变量名称不同但作用相同),都运用了for语句执行循环。
不同之处:她运用了两个if语句来分别判断输入的成绩等于0和大于等于60两种情况,分别执行不同的语句;我运用了if-else语句来判断两种情况,分别调用printf()函数输出不同的结果。

2.2.1题目截图

2.2.2自己代码截图

同学代码截图

相同之处:都运用if-else语句进行判断,如果输入的年份小于2001或大于2100(即非21世纪的年份)输出"Invalid year!"
不同之处:1.我在调用scanf()函数之前就用int定义了i,并置i为2001;她在调用for语句时使用int定义i。
2.我使用if语句判断,当输入年份大于2000且小于2003时(此时的逻辑关系式为year>2000&&year<=2003),不存在闰年;她使用if语句判断当count的累加次数为0(即count==0)时,不存在闰年。

三、学习总结

3.1 学习进度条

这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 6小时 29行 对C语言、markdown语法,编程有了初步的认识 对编程一窍不通,只会照着书上打
第二周 8小时 19行 学会如何提问,安装MinGW-w64并用它编译C程序 markdown语法掌握不熟练
第三周 10小时 96行 关系运算、if-else语句、格式化输入语句scanf(),以及常用的数学库函数 对编程中各大语句的运用不熟悉
第四周 13小时 93行 for循环语句实现指定次数的循环程序设计 运用for语句时经常犯很多错误
第五周 10小时 161行 用C语言编写程序 对编写函数和调用函数还有很多不熟悉
第六周 12小时 168行 多分支结构、字符型数据类型和逻辑运算符 对各运算符的优先级和结合性,多分支结构不熟悉

3.2 累积代码行和博客字数

3.3学习内容总结

3.4学习感悟

每周都会学习新的知识点,新的知识点总是有一些难以理解的地方.这时候把新的知识和以前学过的旧知识放在一起整理归纳,不仅可以温习巩固旧知识,而且可以使新知识更加易于理解.例如这周学习的else-if语句和之前学过的嵌套的if-else语句都可以实现多分支结构.但由于else-if语句的逻辑结构更清晰,应用范围更广;这周学习的逻辑运算符和之前学习的算数运算符,关系运算符等都是运算符的种类.运算符的优先级和结合性能决定表达式的计算顺序;调用函数处理整形数据和浮点型数据的输入输出时,有专门的格式控制说明%d和%lf,字符型数据的格式控制说明为%c.
原文地址:https://www.cnblogs.com/shenxinglou/p/11775314.html