C语言I博客作业07

这个作业属于哪个课程 这个作业要求在哪里 我在这个课程的目标是 这个作业在哪个具体方面帮助我实现目标 参考文献
C语言程序设计II C语言I—2019秋作业07C语言作业评价标准 熟悉并掌握基本的程序语言知识,并拥有独立完成程序编辑的能力
进一步强化C语言的基础学习,学习掌握多分支结构中的switch语句,同时通过PTA作业了解其在实际编程语言中的应用
C语言程序设计(第三版),百度百科

1.PTA实验作业

1.1 计算天数

   输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。在一行输出日期是该年中的第几天。

1.1.1 数据处理

   ①数据表达:使用了整形常量year,month,day,作为输入的年月日;
   ②数据处理:使用了Swtich多分支结构语句 ,作为判断并输出相对应的月份所包含的天数。
   ③简易流程图如下:

1.1.2实验代码截图


1.1.3 造测试数据

输入数据 输出数据 说明
2009/03/02 61 使用题试数据测试
2000/03/02 62 使用题试数据测试
2999/12/31 365 使用较大数据测试
1000/01/01 1 使用较小数据测试
2019/11/06 310 使用今日数据测试并百度检验

1.1.4 PTA提交列表及说明

提交列表说明:

1.编译错误:Swtich语句中default后没有加分号;(补齐分号解决)
2.答案错误:逻辑运算符的错误使用,使闰年判断错误;(使用逻辑运算符&&确保条件同时成立)
3.部分正确:在Swtich语句中没有全部的更改二月份的天数;(将闰年部分的二月份全部改为29)
4.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。

1.2 整数的分类处理

   给定 N 个正整数,要求你从中得到下列三种计算结果:A1 = 能被 3 整除的最大整数;A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数;A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值精确到小数点后一位。 输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE。

1.2.1 数据处理

   ①数据表达:使用了整形变量N,number,i,x,result,count, sum,result1,以及浮点变量result2;其中,N作为输入的数字个数,number作为输入的数字,i和x作为程序运行的中间变量;result、result1、result2分别做微A1、A2、A3的数值,count作为符合A3条件的计数器,sum作为符合A3条件的数的总和;
   ②数据处理:使用了for循环语句,作为输入数据的数量判定,直达达到输入的N个数字;使用了if 选择语句,用来判断输入的数字符合哪个条件;使用了Swtich多分支结构语句 ,用来判断符合resul1条件的数字个数。
   ③简易流程图如下:

1.2.2实验代码截图


1.2.3 造测试数据

输入数据 输出数据 说明
8,5 8 7 6 9 1 3 10 9 3 6.5 使用题试数据测试
8,15 18 7 6 9 1 3 10 18 3 NONE 使用题试数据测试
10,1 3 5 7 9 12 14 16 18 20 18 3 13.0 使用随机数据测试
5,7 7 7 7 7 NONE 5 NONE 使用重复数据测试
1,3 3 NONE NONE 使用单个数据测试

1.2.4 PTA提交列表及说明

提交列表说明:

1.编译错误:if语句和算术运算符的括号结合使用导致少使用一边括号;(补齐一边括号解决)
2.部分正确:使用了未经定义的变量运算;(重新定义所有使用了的变量)
3.部分正确:将result等变量的赋值语句放入了for循环语句中导致输出错误;(将赋值语句放在循环语句之前)
4.编译错误:在VS中编译后粘贴实验没有去除_s的符号导致编译错误;(去除_s符号)
5.部分正确:没有考虑到sum和count都为0的情况导致result2没有意义;(加入if语句考虑result2为0的情况)
6.部分正确:错误的在Swtich语句中加入多余的default语句给result1赋值;(去除default语句)
7.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。

2.代码互评

2.1同学代码截图①(来自李泽基)

2.1同学代码截图②(来自彭齐家)

2.2自己代码截图(使用习题7-12)


2.3比较结果

   ①使用的整形变量的不同,我的使用的比较多,还有简化的余地。当然名字的不同就不算在内了,每个人的习惯不一;不过主要是我使用了被调函数因此增加了一定的变量;
   ②使用的计算步骤的不同,由于自定义函数放在了前面所以我的会先进行判断再进入Swtich语句;
   ③使用的计算方法的不同,我整个自定义了一个新的函数来直接判断成绩区间,以此来作为Swtich的表达式。

3.学习总结

3.1 学习进度条

周数/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第三周/10-11 约6-7h 约200-240 “if”和“else”选择结构语句的基本使用
对于更多的选择情况产生的时候,无法判断语句执行的先后顺序
第四周/10-16 约6-7h 约320-360 “for”循环结构语句的基本使用
对于多个循环结构的使用不熟悉,以及循环计算中的语句计算先后顺序
第五周/10-24 约6-7h 约320-360 自定义函数的格式以及应用
自定义函数格式中返回值的运用
第六周/10-31 约6-7h 约320-361 多分支结构、字符型数据类型和逻辑运算符
字符型数据有何具体的实际意义
第七周/11-06 约7-8h 约340-399 多分支结构中的Swtich结构的运用以及是否使用break的区别
Swtich语句的重复多次运用方法

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

   还记得彭老师上课跟我们讲这次作业全部要使用Swtich语句来完成的时候,有同学问都用这个怎么完成代码的互评比较。哈哈现在自己整个做完了发现完全没得这个顾虑,虽说要求使用Swtich语句,但是每一个程序的设计都可以有好多种不同的方法和执行方案。尤其是当变量较多的时候,处理的方法和计算的步骤上更是有各种不同的方法。我想,比较的意义就在于取长补短,多多看看其他同学的代码,与自己的进行对比,学习其中的先进便捷的思想。集百家之长,对于我们的学习益处颇多。
   就拿我比较的的习题7-12来说,我从Swtich语句出发,立马就想到了之前我们所学习的自定义函数。结合起来运用不但能够巩固之前所学,加强与现有新学知识的联系,相信也能够与其他同学的代码比对出很多可以学习反思的内容来。
   顺带一提,感觉博客园整个更新了一下,字体变细了一点、加图片也在右上角了。不过这些都不重要,只是比较不习惯这个编辑模式发生了更改,打字输入的话不是向后顺推文本内容了,而是直接顶替原有文本内容,不知道哪里可以设置返回原有编辑模式。望解答。
   发现代码互评原来真的不只是简单的找不同,学习自己所没有的知识和思路才是它的意义所在。

“他山之石,可以攻玉。”

   ——《诗经·小雅》

原文地址:https://www.cnblogs.com/rodcirdo/p/11801171.html