博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言博客作业2--循环结构
阅读量:6700 次
发布时间:2019-06-25

本文共 3120 字,大约阅读时间需要 10 分钟。

1.1 思维导图

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

1.2.1 学习体会

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

1.2.2 代码累计

2.PTA总分

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

2.2 我的总分:

 

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

 

3.PTA实验作业

3.1 PTA题目1

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

3.1.1 算法分析

 

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

 

3.1.2 代码截图

3.1.3 测试数据

3.1.4 PTA提交列表及说明

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

3.2 PTA题目2

 

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

 

3.2.1 算法分析

 

定义n和repeat,定义i和j用来循环,定义mark定义x1,x2,x3,x4,x5值为0输入repeatfor j=1 to j=repeat do     输入打分人数n    for i=1 to i=n do //要输入n个分数        输入打的分数mark        用switch判断mark            若是1则x1=x1+1,退出判断            若是2则x2=x2+1,退出判断            若是3则x3=x3+1,退出判断            若是4则x4=x4+1,退出判断            若是5则x5=x5+1,退出判断        end switch    end for    输出 1:    for i=1 to i=x1 do        输出 *    end for    输出换行    输出 1:    for i=1 to i=x2 do        输出 *    end for    输出换行    输出 1:    for i=1 to i=x3 do        输出 *    end for    输出换行    输出 1:    for i=1 to i=x4 do        输出 *    end for    输出换行    输出 1:    for i=1 to i=x5 do        输出 *    end for    输出换行    x1,x2,x3,x4,x5的值全部为0end 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输入总时间Tt=T与90的余数  //通过分析发现每90分钟一个循环num=T/90 //即完整的循环个数if t>0且t<=10 then    s2=270*num+t*9  //270为每个循环的路程    输出兔子赢和s2else if t>10 且t<30 then    s2=270*num+90    输出兔子赢和s2else if t>45且t<50 then    s2=270*num+90+(t-40)*9    输出兔子赢和s2else if (t>30且t<45)或(t>60且t<90) then    s1=T*3    输出乌龟赢和s1else    s1=T*3    输出平局和s1

 

3.3.2 代码截图

3.3.3 测试数据

3.3.4 PTA提交列表及说明

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

4.代码互评

 

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

 

 

4.1 代码截图

同学代码:

 

 

我的代码:

 

4.2 二者不同

 

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

 

转载于:https://www.cnblogs.com/putianliuzhong/p/9863996.html

你可能感兴趣的文章
Linux基本命令+Makefile
查看>>
加强团队凝聚力建设方面采取的方法
查看>>
Spring Boot 使用常见问题
查看>>
Linux 常用命令
查看>>
Angularjs 动态添加指令并绑定事件
查看>>
iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
查看>>
Redis配置文件参数说明
查看>>
C#文件拖到TextBox中获取文件显示文件路径
查看>>
TSQL 根据表名生成UPDATE SELECT INSERT
查看>>
程序员的思维修炼》读书笔记
查看>>
Java第五次作业--面向对象高级特性(抽象类和接口)
查看>>
Linux进程间通信(四) - 共享内存
查看>>
python-访问者模式
查看>>
事件处理
查看>>
安卓自定义View进阶-分类与流程
查看>>
iOS开发多线程篇—线程安全
查看>>
android 学习随笔十六(广播 )
查看>>
WorldWind Java 版学习:1、启动过程
查看>>
cep
查看>>
获取 docker 容器(container)的 ip 地址
查看>>