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语句判断的条件就比较少

原文地址:https://www.cnblogs.com/jellysheep/p/9865735.html