• C语言博客作业02循环结构


    1.本章学习总结

    1.1思维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    本章主要学习了循环结构的知识,有个三个循环结构,分别为do-while、while、for语句;循环结构在c中的存在是涉及很广泛的,大部分都需要循环来完成这个代码。同时在学习的过程中我也了解到循环结构在使用时的特点和注意点,但是结构的使用都是一个固定的,只要按照正常语法结构以及定义的规范走,都是固定的。

    1.2.2 代码累计

    2.PTA总分

    2.1 截图PTA中循环结构2次题目集的排名得分

    2.2 我的总分:

    循环结构(单层):175
    循环的嵌套:105
    总分:280

    3. PTA实验作业

    3.1 PTA题目1

    7-11 简单计算器
    模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

    3.1.1 算法分析

    • 定义int result,logo //result用于第一个数据输入 和结果的输出,logo 为下一个数据的输入
      -char ch //用来接收输入的运算符
      -输入 result ch //第一个数据和第一个运算符
      -while 判断ch是否为等号 否进入循环
      -输入下一个数据logo
      -switch 选择结构(ch)//判断ch是哪一个运算符
      -‘+’ ‘-’ ‘*’ 都以各自的运算方式运算
      -‘/’ 除法比较特殊 用if 判断 分母logo是否为0
      -是 输出ERROR
      -否 result/=logo break 跳出该循环
      -default 输出 ERROR return 0;//当输入的格式有问题时结束程序
      -输入ch //下一个 运算符
      -输出结果result

    3.1.2 代码截图

    3.1.3 测试数据

    3.1.4 PTA提交列表及说明

    Q1: 没有考虑到输入的格式错误该怎么办
    A1:在switch里面加一个default 用于输入错误的输出

    3.2 PTA题目2

    7-9 龟兔赛跑
    乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?

    3.2.1 算法分析

    • 定义兔子所跑的路程:sTuzi,乌龟所跑的路程:sWugui,时间:time,兔子休息时间:ing,总计时间:T
    • 输入T
    • for time=1 to time<=T
      • sWugui+=3
      • 判断ing如果为0
      • 执行sTuzi+=9;
      • 否者
      • ing --;//兔子休息30分钟
      • 判断time%100;ing0;//兔子回头看
      • 执行判断sTuzi是否大于sWugui
      • 执行ing+=30;//这个为兔子超过乌龟休息时间
        -if (sWugui==sTuzi)
      • 输出("-- %d",sTuzi);
        -if (sWugui>sTuzi)
        -输出("@
        @ %d",sWugui);
        -else 输出("_ %d",sTuzi);

    3.2.2 代码截图

    3.2.3 测试数据

    3.2.4 PTA提交列表及说明

    Q1: 代码相对比较多大括号会比较乱
    A1:细心的规范代码,尽量做到整洁,清晰
    Q2:忘记给数据初始化导致数据错误
    A2:对没有赋值的变量初始化
    Q3:兔子每十分钟的回头判断没有写好

    3.3 PTA题目3

    7-8 单词长度
    你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it's算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。

    3.3.1 算法分析

    • 定义判断该单词是否结束:flag 定义单词计数: a 定义输入的字符:ch
    • 对数据flag 、a进行数据初始化
      -进入循环第一个while 退出循环条件为点(.)
      -输入第一个字符 进入do-while循环 这一步为排除空格
      -判断输入的字符是否为点(.)为点不运算剩下语句直接退出循环
      -进入while循环用a++对单词计数
      判断flag 用来隔开每个单词
      -对a初始化 以便下一个循环的计数

    3.3.2 代码截图

    3.3.3 测试数据

    3.3.4 PTA提交列表及说明

    Q1:一开始空格不知道怎么去除
    A1:和同学进行探讨,用do-whlie循环去掉空格计数
    Q2:对什么时候用空格把每一个输出的数字隔开比较模糊
    A2:后来和同学探讨运用flag的0/1来决定要不要输出空格

    4.代码互评

    4.1 代码截图

    同学代码截图

    自己的代码截图

    4.2 二者的不同

    1.他用的是while的语句而我用的是for语句
    2.我的代码优点在于看起来比较简洁,也比较容易懂
    3.都用到了if来判断,但是因为我是for语句判断的条件就比较少

  • 相关阅读:
    [LeetCode 116 117]
    看几道JQuery试题后总结(下篇)
    插入排序及其扩展
    Operation not permitted引发的惊魂72小时
    dddd
    天底下什么人都有,不要跟他们一般见识就是了
    qt宽字符串中文乱码(codec->toUnicode值得学习)
    qt事件传递过程和处理
    qt新进程工作目录的设置(工作目录确实是被子进程继承的,但也可以设置)
    面试都爱问的委托和事件(纠正)
  • 原文地址:https://www.cnblogs.com/jellysheep/p/9865735.html
Copyright © 2020-2023  润新知