C语言I博客作业07

1.作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585
这个作业的目标 <通过写一些较为复杂的代码提升我们的编程能力,让我们更加熟练本周所学的知识,夯实基础。>
学号 <20209136>

一、本周教学内容&目标

第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。

二、本周作业

1.PTA实验作业
2.代码互评
3.学习总结

三、作业格式

1.PTA实验作业
请在此处列出自己的排名图片:

从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:

1.1题目名1: 猜数字游戏

题目内容描述:
​​猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
输入格式:
输入第一行中给出两个不超过100的正整数,分别是游戏机产生的随机数、以及猜测的最大次数N。最后每行给出一个用户的输入,直到出现负数为止。
输出格式:
在一行中输出每次猜测相应的结果,直到输出猜对的结果或“Game Over”则结束。

1.1.1数据处理

介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:用到了i,p,n,m四个变量。m,p,n的值通过调用输入函数获取用户输入的数值再进行赋值,其属于整型变量。i的值通过循环逐渐累加。
数据处理:用到了赋值表达式i++,输入输出表达式,scanf("%d %d/n",&m,&p);printf("Bingo!
");用到了while,if-else结构。

伪代码

m←1
n←1
i←0
输入 "%d %d/n" &m &p while
m≥0 or n≥0  
输入 "%d
"&n 
if n<0andi<p+1  
输出 "Game Over" 
elseif n≠m and i>p+1 
then printf"Game Over" 
结束
elseif n=m and i=0     
输出 "Bingo!
"     
i++  
结束
elseif n>m printf "Too big
" i++ 
elseif n<m 
then printf "Too small
" i++ if n=m and i≤2   
输出  "Lucky You!
" 
结束
elseif i>2andi≤pandn=m 
then printf"Good Guess!
"
elseif i≥p
then printf "Game Over
" 
结束      
else 不执行

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
88 4 1 50 56 4 88 -5 Too small Too small Too small Too small Game over 超过四次猜对,输出Game over
2 8 3 5 56 8 2 -2 Too big Too small Too small Too small Good guess! 在八次以内猜对数据,输出Good guess!
68 6 9 50 56 8 60 -1 Too small Too small Too small Too small Game over 在六次以内没有猜对数据,输出Game over
66 2 9 5 56 8 66 -5 Too small Too small Game over 超过两次没有猜对数据,输出Game over
2 2 2 50 56 8 60 -2 Bingo! 超级厉害,一次就猜对了,输出Bingo!
66 5 1 5 -2 0 60 -1 Too small Too small Game over 在5次之前,用户输入了一个负数,输出Game Over

1.1.4 PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

提交列表说明:

 1.部分正确:把在到达p次之前,判断输入负数将输出“Game Over”并结束程序的代码加到while循环以外,搞半天脑子又混乱了,于是试着把它放进去,再进行提交。
 2.部分正确:找到问题所在if(i>2&&i<p&&n==m),没有理解题目意思,改成if(i>2&&i<=p&&n==m),提交后显示答案正确。

1.2题目名2:求整数的位数及各位数字之和

题目内容描述:
输入在一行中给出一个不超过10的9次方的正整数N。

1.2.1数据处理

介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:用到了x,number,y,sum,item,i,t这七个变量。x,y,number的值通过调用输入函数获取用户输入的数值再进行赋值,number属于整型变量,x,y属于双精度浮点型变量。t的值通过调用pow函数被赋值属于浮点型变量,i,sum在后面的循环中递增,其属于整型变量。item在循环中被number%10赋值,属于整型变量。
数据处理:用到了赋值表达式item=number%10; number=number/10; sum=item+sum; i+=1; 。用到了while循环结构,调用了数学函数。

伪代码

i←0
sum←0
t←pow 9 10 
输入 整型 &number
if number<t 
then
while number≠0 
item←number%10/*除10取余赋值给item*/
number←number/10 /*除10取整赋值给number*/
sum←item+sum
i+=1 
输出 浮点型 %.0f i sum

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
321 3 6 三位数,各位数的和为6
456 3 15 三位数,各位数的和为15
1999 4 28 四位数,各位数的和为28
2001 4 3 四位数,各位数的和为3
250 3 7 三位数,各位数的和为7
520 3 7 三位数,各位数的和为7
9898 4 34 四位数,各位数的和为34

1.2.4 PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

提交列表说明:

 1.多种错误:出现了运行超时,答案错误,仔细查找原来是把%错打成了/导致出现错误,正确修改再次提交。
 2.编译错误:修改过程中把/打成了导致编译错误,正确修改后显示答案正确。

2.代码互评

同学代码截图

自己代码截图

1.同学的代码仅仅定义了三个变量,用一个while循环就解决了问题。非常的高效。
2.我定义了七个变量,还调用了数学函数判断输入值的情况,同样使用的是while循环。但代码量较多。

同学代码截图

自己代码截图

1.整体上看我们的代码量差不多,都是先获取输入再判断,在while循环体中再添加逻辑判断语句。
2.不同的是同学使用的是goto end语句跳出循环还有else-if语句,而我使用的是break语句和if-else嵌套。同学用goto end语句做跳转更加正确,而break的使用限于for。

二.学习进度条

周/日期 代码行 这周所花的时间 学到的知识点简介 目前比较疑惑的问题
第八周10.19-10.25 480 23小时 调用输入输出函数,输出任意的字符串。 输入输出格式常没有与题目一致
第九周10.26-11.01 599 33小时 数的类型,定义变量时要先考虑清楚。 数据溢出和负数的浮点型
第十周11.02-11.08 519 27小时 for循环语句,if的判断语句。 多次循环与循环体中再添加变量赋值并再循环
第十一周11.09-11.15 520 20小时 定义函数,调用函数 调用函数和定义函数易将变量弄混淆
第十二周11.16-11.22 550 28小时 多分支结构、字符型数据类型和逻辑运算符。 多分支结构容易弄错,逻辑运算符使用不熟练
第十三周11.23-11.29 540 30小时 多分支结构switch语句 switch语句使用不熟练,容易出现漏掉符号的情况
第十三周11.30-12.06 510 20小时 while和do-while结构 在while和do-while结构的循环体中添加判断和累加代码就很难弄清
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

感悟:

1.这周新学了while和do-while循环结构,老师一周就只上一节课,所以课上讲的知识并不是那么的详细,但矛盾的是完成作业光靠这些是完成不了的,所以我们得拓展自己的知识面主动去学习,可以去网上寻找好的资源细细的参透一番。
2.在专业课的学习过程中,还是不能偷懒,得脚踏实地一步一步来,代码一定要自己写,哪怕付出很多时间,夯实基础才是目前我们最应该做的!
3.作业真的是越来越难,这次是我写作业花时间花的最长的一次,每一个代码写之前都得先有个清晰的思路,否则就会被困,浪费大量时间,甚至让自己发疯。
4.总结这次PTA上的作业,还是第四题最让人舒服,我改了n次试过很多循环结果总是因为一点点错误很不愿再改代码,所以总是删了又写,写了又删,花费的时间是最多的,太多的判断条件真的很磨人,好在最终还是弄出来了。
原文地址:https://www.cnblogs.com/vatij/p/14090625.html