这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11531 |
这个作业的目标 | 熟练运用多分支结构 |
这个作业在那个具体方面帮助我实现目标 | switch语句的运用 |
参考文献 | C语言程序设计 |
1.PTA实验作业
1.1本题要求编写程序计算某年某月某日是该年中的第几天。
1.1.1数据处理
数据表达:运用整数型变量a,b,c,m,n,i,day,d;其中i是循环变量,d是中间变量;
数据处理:运用for循环结构以及if分支结构:
for(i=1;i<=b-1;i++);
if-else....
以及逻辑运算符&&和||;
1.1.2代码截图:
1.1.3造测试数据:
输入数据 | 输出数据 | 说明 |
---|---|---|
2012/03/02 | 62 | 闰年普通月份测试 |
2016/02/02 | 33 | 闰年特殊2月份测试 |
2011/02/02 | 33 | 平年特殊2月份测试 |
2001/03/02 | 61 | 平年普通月份测试 |
1.1.4PTA提交列表及说明 | ||
1.首先是在if语句中出现错误,忽略逻辑运算写成
(i==1||3||5||7||8||10||12)
经过查找C语言程序设计一书理解了逻辑变量的表达方式改为
(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
后,运行成功;
2.忽略了月份计算时不能从本身算起,在循环变量中写为了
for(i=1;i<=b;i++)
在经过思考与手动计算后发现不能算月份本身天数,于是改为
for(i=1;i<=b-1;i++)
后,成功运行;
问题解决。
1.2本题目要求读入年、月、日,然后判断前天日期。
1.2.1数据表达:
数据处理:运用整数型变量y,m,d;根据月份,年份,天数的英文字母确定变量
数据表达:运用if-else和else-if多分支结构;
if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
else if((m==2||m==4||m==6||m==9||m==11)&&d<=2)
else
if((m==5||m==7||m==8||m==10||m==12)&&d<=2)
以及逻辑运算符&&和||;
1.2.2代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2020-01-01 | 2019-12-30 | 闰年首日跨年三变测试 |
2019-03-01 | 2019-02-27 | 平年特殊2月测试 |
2020-03-01 | 2020-02-28 | 闰年特殊2月测试 |
2017-09-09 | 2017-09-07 | 普通年份测试 |
1.2.4提交列表及说明 | ||
1:运行时编译错误由于在变量m,y,d前面添加&符号;
经过一番查找后才发现错误后改为:
scanf("%d %d %d",&y,&m,&d)
2:在编译时漏掉了普通年份的判断结构,而且遗忘了else-if的正确顺序
经过一系列的修订后成功将else-if与if-else语句的大括号结构整理完毕
同时也发现了漏掉的普通年份判断语句;
2.代码互评
同学代码1:
我的代码1:
互评1: 1.从学习内容上看同学代码用到了switch结构,而我的代码未提及。在这点上我需要将此题用switch结构再写一遍
2.从整体简洁性看,同学代码较为我的代码简洁工整,这点我需要学习。
3.从代码简单方便来说,同学代码在写时较为繁琐,而我的代码却比较好写,
4.但我的代码细节较多易出错,需要认真修订。
同学代码2:
我的代码2:
互评2: 1.从整体上看我的代码思路和同学的代码思路是大致一致的,只不过在表达方式上略微不同
2.从代码简洁上看同学代码要比我的代码更加简洁,他判断语句少但表达一样不少,值得学习
3.从语句上看,同学的语句在于从基础天数2月份算起,依次上加。
而我的是以31和30作为基础数据搭配闰年平年情况统一累加。
4.总的来说我可以学习同学代码的简洁,以及他的从特殊入手的思路技巧。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到到的知识点 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 6小时 | 200 | 输出Hello World | 对于循环的条件运用以及 |
第二周 | 8小时 | 500 | 数学运算 if分支语句 | 循环时具体的赋值状态 |
第三周 | 15小时 | 900 | for循环语句 | |
第四周 | 18小时 | 700 | 调用自定义函数 | 对于自定义函数掌握不太熟练 |
第五周 | 19小时 | 800 | 逻辑运算以及if多分支结构 | 运用if多分支时容易搞混乱语句的结构顺序 |
第六周 | 24小时 | 900 | switch语句的多分支结构 | 不能熟练掌握switch语句简化语句的以及break跳出方式 |
3.2 累积代码行和博客字数 | ||||
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1:已经学习六周目了,对于程序的编写也越来越复杂,对于代码的研究也越来越深入。我从中慢慢感受到了这门学科的难点和重点
2:我已经能够理解简单的代码数据类型,也能够看懂其他人一些简单的代码结构,这将会对我以后自己研究代码提供了一定的基础
3:我也能够从不同的代码编写上找出简便的编写方法,研究出一套适合自己的编写路径和独特的代码编写特点。
4:学习完switch后才发现好多东西代码可以替换,每种代码有着本身的特色和表达方式,不同代码组合在一起会产生极大效果
每种代码的相互配合和结合都会有助于程序的编写,让编程语句更加简洁实用;
5: 希望以后自己能够坚持住对代码编写的信心,对于代码的运用越来越熟练。