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

    0.展示PTA总分

    1.本章学习总结

    1.1 学习内容总结

    1.循环

    在上一个博客作业我介绍了三个循环(while,do-while,for)的结构和之间的异同,这里我就不多赘述,来介绍介绍一些示例。

    1.while循环

    while循环我就拿一题简单的题:单循环作业中的7-3 正负数的个数:[https://pintia.cn/problem-sets/1176411639231516672/problems/1176412128429969410]
    题目如下:

    只有当循环条件满足时才能进入循环,我给循环判断的条件是n!=0而n我给它的作用是作为输入的数来判断正负性,由于while循环是先判断,n还没有输入,所以我给n一个初始定义才能让n进入循环。

    2.do-while循环

    do-while循环最大的特点是最少执行一次,所以对于一些题目最少要进行一次循环,可以优先考虑用do-while循环。
    do-while最大要注意的一点是while条件后要加封号。

    3.for循环

    for循环后有三个条件体,条件1和条件3可以选择性省略,但条件2一定要正确,否则很可能会造成死循环。

    4.break语句

    break语句常见与switch中,但在循环中也有运用,break在循环中的作用是跳出循环,这在一些判断的题目中可以广泛运用。

    continue语句

    continue语句也运用于循环中,其作用是不进行continue下面的语句直接进入下一次循环,这在一个范围内找出满足条件的数很有用。

    1.2本章学习体会

    • 本章的学习中我感到了一些无力。例如在c04的7-6中,按照常理说我的代码没问题,但提交上去就显示我代码运行超时,但在我当前已有的知识储备中并不能解决我遇到的问题。
    • 这两周我的代码量达到了1000(pta中提交后的,没有计算上修改的)。

    2.PTA提交作业

    2.1 c03单循环结构7-11 简单计算机

    2.1.1伪代码

    int digit;用digit来装要计算的数字
    char op;用op来装计算符
    int sum=0;用sum来装计算结果,先定义sum=0
    int flag=1;用flag来判断除数为0的情况

    2.1.2代码截图

    2.1.3造测试数据

    |输入数据|输出数据|说明|
    |1+210-10/2=|10|正常数据|
    |1+2
    10-10/0=|ERROR|除数为0|
    |1+2*10-10/2#|ERROR|非法字符|
    |1=|1|最小表达式|

    2.1.4PTA提交列表及说明


    Q123:刚开始我输入放在switch外,导致计算总有出错,几次修改都没有达到效果。
    Q4:第一次尝试将输入的语句放在switch内,导致错误更多。
    正确:经过调试后提交才得以正确。

    2.2 c03氮循环结构7-12 任务06-02-01 于龙遇见日期,又哭了!

    2.2.1伪代码

    int year;用来存放输入的第一个数字,并在排序后代表年
    int month;用来存放输入的第二个数字,并在排序后代表月
    int day;用来存放输入的第三个数字,并在排序后代表日
    int num;用来将年月日排序
    char op1;用来存放输入的第一个字符
    char op2;用来存放输入的第二个字符

    2.2.2代码截图(由于知识的掌握程度不够我的代码有点长)

    2.2.3造测试数据

    |输入数据|输出数据|说明|
    |2/3-123|0123-02-03|合法日期|
    |13+12+45|0045-12-13|合法日期|
    |29,2,2019|Invalid Date!|不合法日期|

    2.2.4PTA提交列表及说明

    Q1:我题目没仔细阅读只是直接按大小排序再判断合理性,忽略了题目要求的同小于12先月后日。
    Q2:改了第一题的问题但还是没把题目理全,忽略了题目要求的如果排序后第二大的数字大于12小于31最小的小于12将小于12的当作月,大于12的当作日。

    2.3c04嵌套循环7-3 打印九九口诀表

    2.3.1伪代码

    int n;存储输入的要求的打印的行数
    int i;循环时输出i行
    int j;循环时输出j列

    2.3.2代码截图

    2.3.3造测试数据

    |输入数据|输出数据|说明|
    |4|11=1
    1
    2=2 22=4
    1
    3=3 23=6 33=9
    14=4 24=8 34=12 44=16 |正常数据|
    |1|11=1 |最小n|
    |9|1
    1=1
    12=2 22=4
    13=3 23=6 33=9
    1
    4=4 24=8 34=12 44=16
    1
    5=5 25=10 35=15 45=20 55=25
    16=6 26=12 36=18 46=24 56=30 66=36
    17=7 27=14 37=21 47=28 57=35 67=42 77=49
    1
    8=8 28=16 38=24 48=36 58=40 68=48 78=56 88=64
    1
    9=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81 |最大n|

    2.3.4PTA提交列表及说明

    Q1234:占四个我刚开始用了%4d结果输出的答案为11= 1,向右对齐了,然后脑抽改成了%04d结果变成了11=0001,1前面多了三个0,最后通过百度搜所猜知道在%后加个-才是向左对齐。
    Q5:刚开始我没有加上判断,直接回车的输出最后只有的一个最小n正确。
    Q6:明白了上一个的错误开始加上判断,由于第一次修改,并不完善,结果还是出现了格式错误。

    3代码互评

    我的代码:看2.2.2,由于于龙自己哭不够,我也帮他哭了半天,终于答对了,所以我选择了这题,截图过多,就不再次上传。
    同学代码(来自朱振豪):

    • 1.由于mooc我只看到了循环结构,并没有开始接触数组,所以我的代码用了很基础,并且按照一个一个测试点修改。
    • 2.反观朱兄的代码,明显上代码的行数少了很多,运用了后面的知识,表现出他学习积极性之高,理解能力之强。
    • 3.一看我的代码,很多,很杂,并没有什么注释让人理解,可阅读性上差了很多。
    • 4.反观朱兄的代码,虽然没有注释,但也条理清晰,结构分明,可阅读性上高了许多,以五十步笑百步的态度来评价:希望他能加一些注释。
  • 相关阅读:
    python的argparse模块
    Robotframework之SSHLibrary库
    Python 中的 getopt 模块
    Python list 列表
    Samba windows 10 share: mount error(112): Host is down
    安装两个版本的python安装包,后安装的python程序打开时闪退
    NetScaler VPX configration
    drupal smtp could not connect to smtp
    drupal7 判断用户是否具有某个权限
    微信支付报错:time_expire时间过短,刷卡至少1分钟,其他5分钟]
  • 原文地址:https://www.cnblogs.com/ye736660997/p/11708157.html
Copyright © 2011-2022 走看看