C语言I博客作业06
| 这个作业属于哪个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11557 |
| 我在这个课程的目标是 | 熟悉switch语句并应用到题目中 |
| 这个作业在那个具体方面帮助我实现目标 | 在switch语句的多加练习帮助我实现对分支结构的熟悉 |
| 参考文献 | C语言程序设计,C Primer Plus |


1.1 题目名1
计算天数
题目描述:
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
1.1.1数据处理
数据表达:本题的变量为year,month,date,a,b,c,其中year,month,date通过输入得到,a,b,c三变量通过计算式得到,都为整型。
数据处理:运用if-else语句以及switch语句展开分支,并运用了逻辑运算符:逻辑与跟逻辑或。
1.1.2实验代码截图



1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 2000/6/18 | 170 | 闰年,是此年的第170天 |
| 2005/7/19 | 200 | 平年,是此年的第200天 |
| 2400/4/26 | 117 | 闰年,是此年的第117天 |
| 2121/2/21 | 52 | 平年,是此年的第52天 |
1.1.4 PTA提交列表及说明

提交列表说明:
答案错误:在if语句中忽略赋值的表达,将if(a==0&&b!=0||c==0)写为if(a=0&&b!=0||c==0),测试时提示错误。
解决方式:及时加上两个等号,并记住赋值的正确表达式。
1.2题目2
多分支表达-倍数问题
题目描述:
键盘输入1个正的整数A,如果A是3的倍数但不是5的倍数,则输出A除以5的余数。如果A是5的倍数但是不是3的倍数,则输出A除以3的余数。如果A既不是5的倍数但也不是3的倍数,输出A除以15的余数
输入格式:
1个正整数
输出格式:
如果是3的倍数但不是5的倍数,则输出A除以5的余数。 如果A是5的倍数但是不是3的倍数,则输出A除以3的余数。 如果A既不是5的倍数但也不是3的倍数,输出A除以15的余数。 如果A不是正整数,没有任何输出。
1.2.1 数据处理
数据表达:本题的变量是x,y,z,w,变量定义都为整型;其中x通过赋值而来,其他三者变量则通过x的值计算得来。
数据处理:运用分支结构中的if-else语句;其中(z==0&&y!=0)等表达式运用了逻辑运算符:逻辑与。
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 0 | 0不是正整数,则无任何输出 | |
| 3.5 | 3 | 3.5既不是正整数也不是3的倍数或5的倍数 |
| 25 | 1 | 25为正整数,是5的倍数但不是3的倍数 |
| 27 | 2 | 27为正整数,是3的倍数但不是5的倍数 |
1.2.4 PTA提交列表及说明

提交列表说明:
部分正确:第一次提交时未注意到题目最后所提到的“如果A不是正整数,没有任何输出。”这句,导致15的倍数和非正整数都出现格式错误的提示。
解决方式:理解没有任何输出的含义,后来将语句改为return 0;则答案正确。

同学代码截图1:

自己代码截图1:

区别:1.该同学运用的语句是之前学习的if-else语句,而我运用的是switch语句,两者在本题简易程度相近。
2.在本题中我没有将第六天跟第七天放在一起,该同学则将这相同的两天放在了一起。
3.该同学在代码分布上也比较分散,看起来一目了然,分级明显,我的则是挨着连起来,看起来较密。
同学代码截图2:

自己代码截图2:

区别:1.该同学运用语句的是分支结构中的if语句,我运用的是if-else语句,略显复杂。
2.该同学没有对15的倍数进行定义,定义的变量比我的少,直接在printf语句中表达计算式,这一点与我的略显差异。
3.他的排版很整齐,没有多余的点缀。

3.1 学习进度条(5分)
| 周/时间 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 第一周 | 5h | 68 | 简单编程 | 无 |
| 第二周 | 15h | 251 | 算数运算和赋值运算 | 无 |
| 第三周 | 25h | 368 | for循环语句的应用,浮点型的学习 | 无 |
| 第四周 | 26h | 379 | 自定义函数和调用函数 | 对调用函数的应用还不够清楚 |
| 第五周 | 28h | 356 | 分支结构中的if-else语句 | 对于使用分支结构的逻辑还不够清晰 |
| 第六周 | 30h | 398 | switch语句的学习和应用 | 对于题目中的逻辑先后问题还不太能理解 |
3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

3.3.2 学习体会
1.新的一周里学习了分支结构中的switch语句,我对分支结构的知识面得到了扩展;对于含简单的switch语句的题目肯定是能够完成的,但是对于较难的题目我还需要去多加学习和练习。不过我还是相信自己能够彻底学会switch语句的。
2.学期已过去大半,深切地感受到我跟班上同学的差距,好多同学都能很好并快速地完成作业,且能快速理解老师所讲述的知识,就有一种很慌的感觉。
3.悲观归悲观,但还是不能落下学习,只不过是速度慢了些,相信自己还是可以完成的
浙公网安备 33010602011771号