1.1 思维导图

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

1.2.1 学习体会

对本章学习感觉相对前面的难度有较大提升,而且刚开始对嵌套循环比较陌生,
像龟兔赛跑和输出菱形都是用了较长时间才完成,所以我认为我在代码的设计
上还需有更多想法。另外对于低级错误的出现频率我认为也要减少。总而言之,
还是顺利的完成了循环的学习,在以后的编程中可以正确利用循环。

1.2.2 代码累计

2.PTA总分

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

2.2 我的总分:

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

3.PTA实验作业

3.1 PTA题目1

本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。
所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,
每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从
给定的起始字母逐一递增;下半部分与上半部分对称。

3.1.1 算法分析

定义一个i和一个j用来循环,定义n,定义ch用来存放起始字母
输入高度n和起始字母ch
for i= to i=n/+ do //先输出菱形上半部分包括中间一行
for j= to j=n/+i do //找到规律是每行中的最后一个字母的位置在n/2与i的和的地方
if j==n/+(i-)+i 或 j==n/-(i-)+ then //每行中字母所在的位置
输出字母ch
else
输出空格
end for
输出换行
字母ch加1
end for
ch=ch- //把字母变成下一行要输出的字母
for i=n/ to i= do //输出菱形下面另一半
for j= to j=n/+i do
if j==n/+(i-)+i 或 j==n/-(i-)+ then
输出字母ch
else
输出空格
end for
输出换行
ch=ch-
end for

3.1.2 代码截图

3.1.3 测试数据

3.1.4 PTA提交列表及说明

Q1:刚看到题目时对于字母的大小和位置的变化不知所措
A1:通过数学关系找到了位置变化的规律
Q2:后来输出的图形与题目的一模一样,但格式错误
A2:通过老师的讲解,明白了错误的原因,通过修改后通过了本题

3.2 PTA题目2

在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图
的形式显示出来,这会大大增加这些数据的直观性,也便于数据的分析
与对比。下面以顾客对餐饮服务打分为例,输入一个正整数repeat (<repeat<),
做repeat次下列运算:输入一个正整数n(≤n≤),表示有n个学生被邀请来给自助餐厅的食品和服务质量打分,
分数划分为1~5这5个等级(1表示最低分,5表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。

3.2.1 算法分析

定义n和repeat,定义i和j用来循环,定义mark
定义x1,x2,x3,x4,x5值为0
输入repeat
for j= to j=repeat do
输入打分人数n
for i= to i=n do //要输入n个分数
输入打的分数mark
用switch判断mark
若是1则x1=x1+,退出判断
若是2则x2=x2+,退出判断
若是3则x3=x3+,退出判断
若是4则x4=x4+,退出判断
若是5则x5=x5+,退出判断
end switch
end for
输出 :
for i= to i=x1 do
输出 *
end for
输出换行
输出 :
for i= to i=x2 do
输出 *
end for
输出换行
输出 :
for i= to i=x3 do
输出 *
end for
输出换行
输出 :
for i= to i=x4 do
输出 *
end for
输出换行
输出 :
for i= to i=x5 do
输出 *
end for
输出换行
x1,x2,x3,x4,x5的值全部为0
end for

3.2.2 代码截图

3.2.3 测试数据

3.2.4 PTA提交列表及说明

Q1:第一次做以为后面的注释也要输入,一直编译错误
A1:经过反复的尝试后认为注释不用输入
Q2:后来出现了答案错误
A2:通过多组数据进行测试后发现x1,x2,x3,x4,x5要返回0;
Q3:后来出现格式错误
A3:对代码进行分析后发现少了换行,及时解决后答案正确

3.3 PTA题目3

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

3.3.1 算法分析

定义总时间T,乌龟路程s1,兔子路程s2,num和t
输入总时间T
t=T与90的余数 //通过分析发现每90分钟一个循环
num=T/ //即完整的循环个数
if t>0且t<= then
s2=*num+t* //270为每个循环的路程
输出兔子赢和s2
else if t> 且t< then
s2=*num+
输出兔子赢和s2
else if t>45且t< then
s2=*num++(t-)*
输出兔子赢和s2
else if (t>30且t<)或(t>60且t<) then
s1=T*
输出乌龟赢和s1
else
s1=T*
输出平局和s1

3.3.2 代码截图

3.3.3 测试数据

3.3.4 PTA提交列表及说明

Q1:刚开始用循环进行解题出现运行超时,代码很长,出现超时瞬间绝望
A1:跳过本题,想其他方法
Q2:后来发现了一定的规律,有了思路,但出现了部分错误的情况
A2:找到各种可能出现的情况进行细分,终于找到突破口,解决了此题
Q3:但是这题毕竟是循环里的题目,却始终不知道怎么解决
A3:通过老师的讲解终于明白任何利用循环解决

4.代码互评

.这位同学对循环的使用更加熟练,代码量更少,而且比较好理解,代码很整洁,不过我感觉double可以改成int更好
.我的代码应该来说运行次数会更少写,用到数学的知识更多一些,要找到规律会耗费一定时间

4.1 代码截图

同学代码:

我的代码:

4.2 二者不同

不同:
.一个用到了循环,一个没有
.变量的命名不同,前者更加直观
相同:
.if用的比较多

C语言博客作业2--循环结构的更多相关文章

  1. C语言博客作业02——循环结构

    1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周学习了循环结构,在之前学习分支结构的时候就涉及到了循环结构中的for循环,这周的又新学了while和do- ...

  2. C语言第三次博客作业---单层循环结构

    一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...

  3. C语言博客作业02--循环结构

    1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 经过本周学习,对c循环结构有了深入,无论是单层循环结构还是嵌套循环结构的问题,我都学会有一定的解决能力, ...

  4. C博客作业02——循环结构

    0.展示PTA总分 单循环题目集 嵌套循环题目集 1.本章学习总结 1.1学习内容总结 (a)while语句 while(表达式) { 循环体语句: } 执行流程:当表达式的值为"真&quo ...

  5. c语言博客作业03--循环结构

    0.展示PTA总分 1.本章学习总结 1.1学习内容总结 循环语句 for语句: for( 表达式1; 表达式2; 表达式3 ) { // 需要执行的语句; } 其执行过程是:表达式 1 首先执行且只 ...

  6. C博客作业02—循环结构

    0.展示PTA总分(0----2) 截图展示2次题目集:单循环和嵌套循环题目集,排名分数截图. 1.本章学习总结(2分) 1.1 学习内容总结 整理这两周学习主要知识点,并能对每个知识点介绍简单案例或 ...

  7. C语言博客作业06——结构体&文件

    C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...

  8. C语言|博客作业10

    问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...

  9. C语言博客作业6---结构体&文件

    C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...

随机推荐

  1. es与solr对比

    solr相关资料 自带Jetty服务器,也可以在tomcat发布solr,默认端口8983: 利用SolrJ操作solr API: Document文档和JavaBean相互转换,用到@Field(& ...

  2. linux搭建所遇到的坑elasticsearch-6.3.0

    注意: 不能使用主账号(root账号运行,必须使用子账号登录) 第一步安装:: wget https://artifacts.elastic.co/downloads/elasticsearch/el ...

  3. Xcode 打包(Shell)

    1. xcodebuild 1.1 查当前可用的 sdk $xcodebuild -showsdks 1.2 查看所支持的target $xcodebuild -target 1.2 清空当前编译的a ...

  4. 树莓派3B+(三)

    上一篇中,我们配置好了基本的raspbain系统,接下来我们可以用xrdp或者vnc在Windows上远程连接树莓派. 一.安装xrdp xrdp和vnc是两种常见的远程桌面协议,可以进行可视化界面远 ...

  5. ZooKeeper集群与Leader选举

    说说你对ZooKeeper集群与Leader选举的理解?   ZooKeeper是一个开源分布式协调服务.分布式数据一致性解决方案.可基于ZooKeeper实现命名服务.集群管理.Master选举.分 ...

  6. linux环境下安装lnmp出现php安装失败

    找到lnmp1.5/include/version.sh文件打开修改 #Freetype_Ver='freetype-2.7' 为 #Freetype_Ver='freetype-2.9'即可

  7. loadrunner 添加集合点和添加压力机

    loadrunner 添加集合点和添加压力机 一.添加集合点: 1.在脚本中右键insert--rendezvous (集合点一定要添加在事务的外面,否则影响事务准确性) 2.创建controller ...

  8. [Android] Android Error: Suspicious namespace and prefix combination [NamespaceTypo] when I try create Signed APK

    Error: Suspicious namespace and prefix combination [NamespaceTypo] 解决办法: xmlns:app 的值改为: xmlns:app=& ...

  9. DataTable某一列转换为分隔字符串

    //把DataTable的某一列转化为逗号分隔字符串 private static string DataTableColumnSplit(DataTable dataTable,string str ...

  10. PMP知识点(一)——风险登记册

    一.Reference: [管理心得之四十八]<风险登记册>本身的风险 问题日志与风险登记册的区别与联系 PMBOK重要概念梳理之二十六 风险登记册 风险登记单-MBAlib 二.Atta ...