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