第3章 分支结构 3.1-3.2 使学生熟悉多分支结构、字符型数据类型和逻辑运算符。
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9888 |
我在这个课程的目标是 | 学习多分枝结构、字符型数据类型和逻辑运算符。 |
这个作业在那个具体方面帮助我实现目标 | 使用多分枝结构简化程序,运用逻辑运算符判断真假 |
参考文献 | C语言程序设计,百度 |
1.PTA实验作业
1.1 题目名1
输出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.1.1数据处理
数据表达:运用 int(整型)定义变量year,i,count
数据处理:运用if-else,for循环语句镶嵌型判断是否为闰年,i运用逻辑表达计算式判断闰年(%4==0&&i%100!=0||i%400==0)
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2101 | Invalid year! | 正常的21世纪年份,正好截止到某闰年 |
1999 | Invalid year! | 不是21世纪 |
2001 | None | 没有闰年 |
1.1.4 PTA提交列表及说明
1.部分正确:缺少计算2000年,改变if语言。
2.部分正确:忽略取余,把取余想成除法。
3.编译错误:不小心按错了。
1.2 题目名1
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
输入样例:
1201 1530
输出样例:
03:29
1.2.1数据处理
数据表达:运用 int(整型)定义变量pass,come,h,m。
数据处理:运用取余和除法计算h,m(m h=come/100-pass/100;m=come%100-pass%100;)if单支语句判断m,h的改变。
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1201 1359 | 01:58 | 去的时间的分钟小与到的时间的分钟 |
1356 1401 | 00:05 | 去的时间的分钟大于到的时间的分钟 |
0000 1200 | 12:00 | 从00:00开始 |
1.2.4 PTA提交列表及说明
1.错误理解当pass的分钟小于come的分钟,少加60分钟,导致答案错误
2.代码互评
图一:
图二:
图一:同学代码 图二:我的代码
不同点1:同学代码比我简洁点,可以减少定义变量。
不同点2:同学代码if判断时,我感觉虽然简洁了点,但是让我一眼看过去没有一次性看出想要表达的意思。
3.学习总结
3.1 学习进度条
周 | 这周所花的时间 | 代码行 | 学到的知识点简介 |
---|---|---|---|
一周 | 4个小时 | 50行 | 简单的打印字句 |
二周 | 5个小时 | 85行 | 提问的智慧 |
三周 | 12小时 | 132行 | if-else语句的使用,基本数字的定义,分段函数的计算 |
四周 | 6个小时 | 97行 | for循环语句的使用 |
五周 | 6个小时 | 190行 | 简单函数的定义和调用,while语句,break终止语句 |
六周 | 6个小时 | 260行 | 镶嵌型的for,if-else语句,逻辑运算,字节符的函数表达,switch语句的使用 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
思维导图
1.while语句适用于判断输入值为 <=0 的情况的题目,如果要求输入值为正整数为输出条件就可以使用while语句。
2.while语句与for语句的一点点区别,while语句无法知道循环的次数,而for可以。
3.运用字节符号使用时可以使用 scanf("%c",&ch) 和 ch=getchar()
4.scanf()与getchar的区别:
4.1、getchar()函数只能输入一个字符型的值,而scanf()函数除了字符型,还可以输入多种数据类型的值,包括整型、浮点型等。
4.2、scanf()函数输入字符型需要%c说明符,而getchar()函数不需要说明符。
3.3.2 学习体会
1.哎,又是很快的一周,发现刷了题目,脑子里告诉我会做,可是叫我真真正正的打出程序,不是少这个就是少那个的,其实脑子里想得很多。也不知道为什么,就是感觉只有刷了题目之后才会更熟练。
2.其实这一个月感觉自己的成长很快,想想在国庆的时候连一个简单的打印都不会,不是错这里就错那里的。我想只有认认真真的做题目课后去复习才有提升吧。
3.这一个月说很充实也很充实,说不充实也不充实,每天都有不一样的事情在等着我去做。
4.哈哈哈哈,其实呢我还是更喜欢深夜做题目的我,虽然一天做的不多,也就1.2个题目,但是这样的充实感真的很棒,特别是哪个程序可以运算出来的时候(虽然有去找源代码)就感觉很神奇,真的很神奇,原来计算机可以帮我们节约这么多的时间去计算一些复杂的问题,虽然我做的题目不多,但是我会努力加油的!!