这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11588 |
我在这个课程的目标是 | 更好的理解现在所学习的内容,补充细节和框架 |
这个作业在哪个具体方面帮助我实现目标 | 思维导图和代码互评 |
参考文献 | 《C Primer Plus》《C语言程序设计》(第三版) |
1.PTA实验作业
1.1 实验6-9 统计一行文本的单词个数 (15分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
1.1.1 数据处理
数据表达:
1.变量count:整型,由赋值得来;
2.变量ch,bh:字符型,由输入得来;
数据处理:
表达式:赋值表达式,逻辑表达式,算数表达式;
流程结构:while语句,if-else语句。
伪代码:
getchar()输入一个字符放入bh
while定为死循环
将bh赋值给ch
再使用getchar输入一个字符放入bh
if bh != ' ' 且ch == ' ',则count+1,累积一个单词
if ch == '
',则跳出while循环,即语句输入结束
if bh == ' ',即空格结尾,啧count累计数-1
输出count
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
Let's go to room 209. | 5 | 判断得出有五个单词 |
let | 1 | 前后都有空格,但只有一个单词 |
1.1.4 PTA提交列表及说明
1.部分错误:空格结尾,以及1个最短单词,前有空格,以及全空格的测试点没有通过;
2.部分错误:经过调整后全空格和最短单词时测试通过,但其他的点又错误了。
1.2 实验4-1-9 猜数字游戏 (15分)
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
1.2.1 数据处理
数据表达:
1.变量x,n:为整型,由输入得来;
2.变量a[100]:为整型数组,由输入得来;
3.变量i,sum,flag,m:由赋值得来;
数据处理:
表达式:赋值表达式,计算表达式,关系表达式。
流程结构:while循环,for循环,if-else语句。
伪代码:
初始化flag=0,sum=0
输入x,n
for (int i = 0; i < n; i++)
输入a
if a<0,则break,跳出for循环
else if a>x,则sum++,输出"Too big
"
else if a<x,则sum++,输出"Too small
"
else
sum++,令flag = 1
if sum == 1输出"Bingo!
"
else if sum <= 3输出"Lucky You!
"
else 输出"Good Guess!
",则break,跳出for循环
如果flag=0,则输出"game over
"
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
只比较四次,且第四次正好猜对 | ||
只比较三次,且第三次正好猜对 | ||
比较五次,但是第三次已经猜对,于是只输出三行 |
1.2.4 PTA提交列表及说明
1.多种错误:包括格式错误:输出没有换行,答案错误:没有及时退出等错误;
2.部分正确:超过N次猜对无效,3次猜中,sample 超过3次、正好N次猜出测试点错误;
3.编译错误:在vs改正后复制粘贴时,少复制了一部分;
4.部分正确:3次猜中测试点没有通过。
2.代码互评
同学代码:
自己代码:
同学的代码直接用数学公式讲鸡蛋总和计算了出来,而我则是用for循环一个一个试出来,同学的代码比我的更简便,用的时间也更少。
3.学习总结
3.1学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第八周 | 30小时 | 600 | 基础知识,输入输出函数if-else语句 | 无 |
第九周 | 30小时 | 700 | for循环,while循环,switch语句,数组 | 怎样用数组打出金字塔和蛇形数组 |
第十周 | 30小时 | 500 | 无 | 二维数组的使用 |
第十一周 | 25小时 | 550 | 自定义函数,命名法 | 怎样解决自己的暴力解题思路,让代码更直观简洁 |
第十二周 | 27小时 | 550 | string.h | 怎样解决自己的暴力解题思路,让代码更直观简洁 |
第十三周 | 25小时 | 600 | 无 | 不知道自己该往哪学 |
第十四周 | 26小时 | 650 | 无 | 无 |
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
这周上课更系统的学习了do-while,比我之前所了解的更透彻了一些,写题也能够有更多的方法了,希望下周也可以在原本所学过的基础上再加强一些。