zoukankan      html  css  js  c++  java
  • C语言I博客作业07

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-1
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11584
    这个作业的目标 熟悉掌握while和do-while结构
    学号 20209113

    1.PTA实验作业

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

    1.1(7-3)循环-古角猜想

    题目内容描述:日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。输入格式:输入一个自然数n 输出格式:输出每次运算步骤,直到结果为1。

    1.1.1数据处理

    ·数据表达:用了整型变量n。n表示输入的自然数。
    ·数据处理:用了while语句,if-else语句。表达式:算术表达式,逻辑表达式。
    伪代码:Begin  输入:n
           while n!=1 
              Begin 
              if(n%2←0) 
               Begin
             n/←2
             end
             else Begin
            n←n*3+1
            end
            end
    
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    5 5*3+1=16
    16/2=8
    8/2=4
    4/2=2
    2/2=1
    样例 5是奇数,奇数乘以3加1 偶数就除2,最后结果为1
    6 6/2=3
    3* 3+1=10
    10/2=5
    5*3+1=16
    16/2=8
    8/2=4
    4/2=2
    2/2=1
    样例 6是偶数,偶数就除2,奇数乘以3加1,最后结果为1
    3 33+1=10
    10/2=5
    5
    3+1=16
    16/2=8
    8/2=4
    4/2=2
    2/2=1
    3是奇数,奇数乘以3加1 偶数就除2,直到结果为1
    14 14/2=7
    7* 3+1=22
    22/2=11
    11* 3+1=34
    34/2=17
    17* 3+1=52
    52/2=26
    26/2=13
    13* 3+1=40
    0/2=20
    20/2=10
    10/2=5
    5* 3+1=16
    16/2=8
    8/2=4
    4/2=2
    2/2=1
    14是偶数,偶数就除2,奇数乘以3加1,最后结果为1

    1.1.4 PTA提交列表及说明

    提交列表说明:
    ·编译错误:scanf函数后没打分号。
    ·解决办法:在scanf 函数后加上分号。
    ·运行超时:没有打return 0;
    ·解决办法:在结尾加上return 0;
    ·答案错误:printf中输出的参数n与n/2弄反。
    ·解决办法:先打n/2再打n。

    1.2(7-6)购物(二)

    题目内容描述:用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
    输入格式:若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。
    输出格式:一个实数,表示商品的平均价格,精确到小数点后两位。

    1.2.1 数据处理

    ·数据表达:用了变量n,price,sum都为双精度浮点型变量。n表示商品数,price表示每件商品的价格,sum表示所有商品价格之和。
    ·数据处理:用了while语句,if语句。表达式:算术表达式,赋值表达式,逻辑表达式。
    伪代码: Begin  输入:n,price,sum
            sum←0
            scanf 输入价格
            while price!=-1 do
              Begin   
            sum+←price
            n←n+1
            scanf 输入价格
            if(i >= 10)
             Begin  
                i←10
            end
            end
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    890.78 2769.8 12300 3532.2 -1 4873.19 样例 n<10 四个商品的平均价格为4873.19
    44 999 625.3 -1 556.10 n<10 三个商品的平均价格为556.10
    65 325 96 555 628 427 980 1200 3200 4635 -1 1211.10 n=10 十个商品的平均价格为1211.10

    1.2.4 PTA提交列表及说明

    提交列表说明:
    ·答案错误:结果没有保留两位小数。
    ·解决办法:输出时将结果保留两位小数。
    ·编译错误:scanf函数后忘记打分号。
    ·解决办法:在scanf函数后加上分号。
    ·部分正确:在开始给n赋值为0,然后提交一直提示商品数的极端值,但输入10个商品的测试答案是正确的,不知道哪出现了问题,询问同学后发现开始不需要给n赋值。
    ·解决办法:将之前的n赋值去掉。
    ·多种错误:用int定义n,询问同学后知道应该用double定义。
    ·解决办法:将n定义为double型。

    2.代码互评

    同学代码截图:
    郭雷雨同学的代码:

    何明垚同学代码:

    自己代码截图:

    不同之处:
    与第一位同学的代码比:
    1.我们习惯定义的变量不同,同学定义的是a,b,N,n,i;而我定义了number,N,i,x;
    2.该同学运用的是for循环和if-else的分支结构,并且使用break跳出执行的程序,而我用的是do-while的循环语句和if-else的分支语句,使用return 0;跳出语句。该同学首先用for循环对猜的值与输入的值进行比较,用i来控制循环次数,通过对i的多种判断,得到结果。而我通过do-while.,对输入的值进行判断,最后得出结论。复杂程度差不多,各有各的优缺点。
    与第二位同学的代码比:
    1.我们的思路大致相同,我们习惯定义的变量不同,同学定义的是整型变量n,N,count,num;而我是定义了number,N,i,x;
    2.该同学运用的也是for语句和if-else的分支结构,而我用的是do-while的循环语句和if-else的分支语句。该同学的代码比我的要简洁清晰,更容易懂,我的代码还可以简化。
    3.该同学的代码表达式中用了逻辑运算符,更清楚明白。

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第八周/10.19~10.25 15小时 150行 在屏幕上显示Hello World!学会了怎样用PTA进行写代码作业,学会了markdowm语法
    第九周/10.26~11.1 12 小时 350行 求华氏温度对应的摄氏温度 常量,变量和数据类型 知道以后要怎样向别人提问 变量问题,输入输出格式
    第十周/11.2~11.8 20小时 460行 for循环,if else语句 对于&的用法不了解,输出时保留几位小数
    第十一周/11.9~11.15 17小时 440行 生成乘方表和阶乘表,对函数定义和调用,思维导图 目前不太熟练,调用函数不太理解
    第十二周/11.16~11.22 19小时 490行 多分支结构,字符型数据类型和逻辑运算符 思路容易乱,答案想不全面,逻辑运算符的功能还不是很懂
    第十三周/11.23~11.29 16小时 470行 多分支结构switch语句 什么时候使用switch语句使程序更简单
    第十四周/11.30~12.6 15小时 455行 while和do-while结构 对while和do-while不太熟练,伪代码的打法

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    本周学习了while语句和do-while语句,并知道了for语句,while语句与do-while语句的区别,当循环次数已知时用for语句,看起来最清晰;如果循环次数不明确且需先进入循环则用do-while语句。本周PTA有点难,但题目难度越大,越能看到自己的不足之处。通过这次作业可以看出我的数学逻辑不强,有时没太理解题目的意思, 题目总出错,知识学习得太浅了不够深入,老师在课堂上讲的内容以为都听懂了,实际并没有,当打代码是发现好多不会,在看到一个题不能立马想到要用什么条件,什么语句;伪代码不太会,没写到位,所以我必须要在课堂之前进行预习带着问题思考听课,课后复习,多打代码,在代码后可以加一些注释方便自己他人更好的理解,以免打着打着思路乱了,更努力地去练习,在这门课上花更多的时间。朝着自己的目标慢慢努力,会继续加油!

  • 相关阅读:
    PDA设备小知识--(IP)工业防护等级含义
    实施项目--如何推进项目实施进度
    Git.Framework 框架随手记--存储过程简化
    Git.Framework 框架随手记--SQL配置文件的使用
    Git.Framework 框架随手记--ORM查询数据集合 二
    介绍 Scratch 3.0:扩展编码创造力
    微服务架构:引领数字化转型的基石
    网易云技术开放日 云安全专场分享圆满结束
    JVM调优推荐
    springboot + mybatis + 多数据源
  • 原文地址:https://www.cnblogs.com/hejiao/p/14073190.html
Copyright © 2011-2022 走看看