C语言I博客作业06
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 熟练使用C语言 |
这个作业在那个具体方面帮助我实现目标 | 对本周的学习内容理解更深,总结反思这周学习感受 |
参考文献 | 《C语言程序设计》 |
学号 | 20209017 |
1.PTA实验作业
1.1 题目名1:前天是哪天
本题目要求读入年、月、日,然后判断前天日期。
输入格式:在一行中输入年、月、日。(日期为有效日期)
输出格式:输出前天日期,格式形如2020-10-16
输入样例:2020 10 16
输出样例:2020-10-14
输入样例:2020 1 2
输出样例:2019-12-31
输入样例:2020 3 2
输出样例:2020-2-29
输入样例:2019 3 2
输出样例:2019-2-28
1.1.1数据处理
数据表达:用了year,month,day变量,这些变量的值是定义计算赋值来的,类型是整型。
数据处理:数据用到数学表达式、条件表达式与常量表达式。 流程结构用到选择结构(if-else与switch)。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2020 10 16 | 2020-10-14 | day>2 |
2020 1 2 | 2019-12-31 | day<=2,month=1 |
2020 3 2 | 2020-2-29 | day<2&&month=3 year为闰年 |
2019 3 2 | 2019-2-28 | day<2&&month=3 year为非闰年 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:else的括号没有打全
解决方法:通过收缩括号内内容,找到少打括号的地方。
2.答案部分正确:二月部分的日期错误。
解决方法:自己仔细在脑海中演算一遍,得出要加的值。
3.答案部分正确:switch语句case 2语句后继续运行。
解决方法:case 2语句后没有break,加上后就可以跳出语句。
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不是正整数,没有任何输出。
输入样例:18
输出样例:3
1.2.1 数据处理
数据表达:用了A变量,此变量的值是定义计算赋值来的,类型是整型。
数据处理:数据用到条件表达式。 流程结构用到选择结构(if-else)。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
22 | 7 | 不是3的倍数也不是5的倍数 |
30 | 没有任何输出 | 15的倍数 |
25 | 1 | 5的倍数 |
18 | 3 | 3的倍数 |
-1 | 没有任何输出 | 非正整数 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:printf后面少打了一个;。
解决方法:在后面加一个;。
2.答案部分正确:没有答案显示出来。
解决方法:少打了scanf语句。
3.答案部分正确:15的倍数与非正整数应无法输出,但我的显示了数字。
解决方法:将switch语句换成if-else。
2.代码互评
2.1计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
2.1.1自己代码
2.1.2同学代码
2.1.2不同之处
1.同学只用到了if-else语句,我除了if-else语句还用到了switch语句。
2.同学是用if将所有条件都列出来了。
3.同学设置多个变量让式子更简便,而我则是自己在脑海里把数字都加出来,这样比较麻烦。
2.2多分支表达-倍数问题
键盘输入1个正的整数A,如果A是3的倍数但不是5的倍数,则输出A除以5的余数。如果A是5的倍数但是不是3的倍数,则输出A除以3的余数。如果A既不是5的倍数但也不是3的倍数,输出A除以15的余数
2.2.1自己代码
2.2.2同学代码
2.2.3不同之处
1.同学的代码将每种情况都列出来了,比较具体,而我的是将是十五的倍数与非正整数囊括在一起。
2.同学将十五的倍数与非正整数写出来不输出任何值,而我没有写这两个。
3.我没有用else语句,而同学的不能被三整除的是用else语句写的,这是她将所有情况都写到了才能这样写。
3.学习总结
3.1学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 0天 | 0行 | C语言知识的大纲 | 目前没有问题 |
第二周 | 3天 | 约20行 | Hello world编程Markdown语法 | 目前没有问题 |
第三周 | 5天 | 约80行 | 华氏度与摄氏度的转换、调试 | 对应该如何调试还不太懂 |
第四周 | 5天 | 约90行 | if-else语句 | PTA作业在scanf语句处有警告,该如何修改 |
第五周 | 5天 | 约125行 | for语句 | 对for语句的使用不够熟练 |
第六周 | 五天 | 104 | 如何定义函数 | 对定义函数的操作不过熟练 |
第七周 | 5天 | 184 | char数据类型的用法 | 用char类型不熟练,分不清什么时候要加'' |
第八周 | 5天 | 272 | switch语句用法 | 有部分情况不知怎么用 |
3.2累计代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第一周 | 0 | 0 |
第二周 | 808 | 20 |
第三周 | 808 | 100 |
第四周 | 1426 | 190 |
第五周 | 2968 | 315 |
第六周 | 4144 | 409 |
第七周 | 7053 | 593 |
第八周 | 8814 | 865 |
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
这周在实验课的学习上,完成老师的课堂作业比较困难,效率低,是自己没有在脑海里想清楚该怎么写就开始了的原因,这一点需要自己改正。
本周学习的switch语句听老师讲后自己仍然有许多没有很清楚,在经过写PTA的作业后,对switch语句的掌握程度更好,例如最开始以为case后面的符号是;编译错误后翻书才知道是:。