zoukankan      html  css  js  c++  java
  • C语言博客作业02循环结构

    0.展示PTA总分

    单循环:

    嵌套循环:

    1.本章学习总结

    1.1 学习内容总结

    (1)循环语句
    1、单循环结构
    ·while语句,其一般形式:

    do-while语句,其一般形式:

    while语句和do-while语句
    不同点:
    ·while语句在循环前先判断条件,而do-while语句先执行循环体,后判断循环条件。即循环条件一开始不同时候,while循环不执行,do while循环执行一次。
    相同点:
    ·while语句和do-while语句表达式都可是任意合法的表达式,循环体语句都只能是一条语句,都需要另加初始化部分。
    应用案例:


    对于代码1来说,其输出结果为0;而代码2输出结果为11.
    for语句,其一般形式:

    2、嵌套循环
    主要有几种类型:


    ....诸如此类,一个大循环嵌套了一个小循环。
    注:在嵌套循环中要十分注意,循环初始化语句是否放对了位置。分析清楚是放于外循环还是内循环。
    应用案例:

    (2)关于break语句和continue语句
    ①break语句只能用于switch语句和循环语句中。用于强制循环结束。
    ②continue语句的作用是跳过循环体中continue后面的语句,继续下一次循环。
    两者不同点:
    break语句结束循环,而continue只是跳过语句继续循环。break语句除了可以终止循环外,还用于switch语句,而continue语句只能用于循环。

    1.2 本章学习体会

    对于循环结构的题目,我真的觉得需要把题目给分析清楚,先在草稿纸上写下大致思路才能清清楚楚完完整整的写出代码。在刷pta题集时我是显得吃力的。对于循环结构的调试代码来说,真的真的需要很大的耐心,因为它会进行一次次的循环,有时候循环结束也还没有找到错误所在...也是培养细心耐心了...
    ·关于代码量
    在单循环和嵌套循环的pta题集上,加起来一共是825.再加上平时有时候会打一些案例进行分析,算一算有943.emmmm,是不够多,但还是循序渐进吧。

    2.PTA实验作业

    2.1 简单计算器

    2.1.1

    数据处理
    定义字符型变量op表示输入符号,num表示输入数字,sum用于表示数据之间加减乘除所得到的结果,引入一个flag用于当输入符号不为加减乘除或商为0。
    伪代码

    2.1.2 代码截图

    2.1.3 造测试数据

    输入数据 输出数据 说明
    1+2= 3 正常数据
    2/0= ERROR 除数为0
    1?2= ERROR 非法运算符
    1+2*10-10/2= 10 正常数据

    2.1.4 PTA提交列表及说明

    提交列表说明:

    部分正确:刚开始我并没有把符号和数据分开,例如输入1+2=时,进入循环此时sum由0变为1,继续循环,而2并没有办法叠加到sum内
    起初代码如下:

    于是我进行了许多次尝试,尝试引入新的变量,均未成功。最后我咨询了07学姐。
    答案正确:学姐告诉我可以将字符和数字分开输入,这样也就能进行计算。也不需要把字符转义成数字。如果字符转换成数字还存在一个问题,当要输入12时,读取的字符是一个一个进行读取,这样也是不成功的。如果遇到类似字符串的情况,就需要进行乘10,即:ch=ch*10+op-'0';

    2.2 猜数字游戏

    2.2.1

    数据处理:
    定义整型变量computernumber,mynumber来比较两个数的大小。count用于表示猜数次数,N为输入的最大猜数次数。
    伪代码:

    2.2.2 代码截图

    2.2.3 造测试数据

    输入数据 输出数据 说明
    49 2
    23 too small 数据太小
    49 Luck you 正常数据
    23 3
    23 Bin go 正常数据
    45 1
    23 Too small 数据太小
    13 Game over 结束循环

    2.2.4 PTA提交列表及说明


    答案错误:题目理解有误,我一直认为是电脑输出一个随机数,我使用了随机函数使用<stdlib.h>和<time.h>库文件让电脑随机生成数据。之后就一直答案错误,答案错误,答案错误...
    答案正确:中间之所以会有答案正确呢是因为我询问了周边同学,将她的代码放于VS中进行分析,发现她的随机数是自己输入的,讲述完自己的理解并成功说服对方。之后放于pta中显示正确...后来我也问了学姐,确实是随机数由自己输入的...
    部分正确:将count>=N改为count>N则正确。

    2.3 梅森数

    2.3.1

    数据处理:
    定义整型变量n,i,t,sum。i进行循环表示为2的n次方,sum为pow(2, i) - 1的计算结果,t进行循环,引入flag作为是否为素数的标志。
    伪代码:

    2.3.2 代码截图

    2.3.3 造测试数据

    输入数据 输出数据 说明
    1 None 无梅森数
    2 3 正常数据
    6 3 7 31 多个数据,且格式正确

    2.3.4 PTA提交列表及说明

    部分正确:一开始我的代码在内循环的if语句直接输出sum的值,而当程序进入内循环时,只判断了t=2时,即当sum%2!=0即可输出sum,并没有办法真正的判断是否为素数。之后我就引入了flag,使得语句能够进行完整的循环,直到t由2变为sum。得到正确的flag的值得到梅森数。

    3.代码互评

    (1)龟兔赛跑:
    同学的代码:

    我的代码:

    ·同学的代码中主要引入了flag作为兔子当时是否处于休息时间,再依据flag是否等于1来对兔子的路程进行计算,将兔子和乌龟的路程分开计算。思路也十分清晰,不易混乱。
    ·而我的代码则将乌龟和兔子放在一起进行计算,依照这兔子是否休息时计算兔子和乌龟的路程。
    ·对比较来说,我的代码更容易混乱,只要思路稍一不正确就会出错。
    (2)梅森数
    同学的代码:

    我的代码:

    ·同学的代码是进行了函数调用,直接进行函数调用,确实使得主函数变得简洁。也对题目提供了一种新思路。
    ·我的代码引入了flag,即用于是否为素数,在满足sum=pow(2,i)-1的情况下,又对于是否为素数做了一次循环,即为输出。

  • 相关阅读:
    数据库各类模板
    React+Cesium安装部署
    VS2019+QT 制作自定义控件
    Vue+arcgis(1)
    将TIF/PNG等转为GeoTIFF
    QT 同名信号无法识别的问题
    VSCode配置PyQt5
    Python中类属性和self属性的区别
    postgresql的数据复制
    在windows server 2012 R2上搭建nginx环境
  • 原文地址:https://www.cnblogs.com/lz0149/p/11702819.html
Copyright © 2011-2022 走看看