zoukankan      html  css  js  c++  java
  • 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次试过很多循环结果总是因为一点点错误很不愿再改代码,所以总是删了又写,写了又删,花费的时间是最多的,太多的判断条件真的很磨人,好在最终还是弄出来了。
  • 相关阅读:
    Daemon Tools手工完全卸载方案
    不要轻易删除/windows/install下文件
    Dumpbin命令的使用
    v4l2 视频捕获
    2瓶4两酒,1个1.5两的酒杯
    n个平面分空间最多可分成多少份
    &#65279导致页面顶部空白一行解决方法
    Base64编码原理分析
    浏览器中“JavaScript解析器”工作原理
    IList转化为DataSet,解决了System.nullable()的问题
  • 原文地址:https://www.cnblogs.com/vatij/p/14090625.html
Copyright © 2011-2022 走看看