1.本章学习总结(2分)

1.1 思维导图

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

1.2.1 学习体会

循环相比分支和顺序结构难了许多,相对的来说我的c语言的基础比之前有提高,但是还是很多题想了很久也想不出来,最后参考同学的答案,很多题目简单的办法想不到,经常如引入flag来控制循环的执行,还有嵌套,自己很难想到简单的方法,只知道按照题目意思来,一步一步的解下去,最后往往发现自己的代码很长,而很长的代码又很难看出来错误,然后会影响后面做题的心情,需要一步一步调试看哪里出了错,再一个就是这次循环让我对调试更加的熟练,因为循环就是条件容易错,用调试的办法或者中间加上一个printf的方法能够很容易看出哪里除了问题。还有就是循环的题目,思路还行,就是如果一步一步按照思路来很容易写出一段很长的代码,比如说龟兔赛跑。我以后需要改进我的代码长度,但是现在的作业太多了,以后再改。。。

1.2.2 代码累计

2.PTA总分(2分)

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

3.PTA实验作业(6分)

3.1 PTA题目1

判断T分钟后乌龟和兔子谁跑得更远,跑的远的赢,再输出赢的动物跑的距离。

3.1.1 算法分析

定义变量rabbit和tortoise来储存兔子和乌龟跑过的路程。T代表总时间。 time代表某一刻的时间。
输入时间T
for time=1 to T do
if flag==1 then 进入执行这个if后的{ }里的内容
if(i%10==0&&rabbit>tortoise)
令flag=0,然后 令rest=0,flag=0,进入else 每次循环加1分钟,直到休息了30分钟后令flag=1,进入if(flag==1)
if(time>T)
end for

if(rabbit>tortoise) printf("^_^ %d\n",rabbit);
else if(rabbit<tortoise) printf("@_@ %d\n",tortoise);
else printf("-_- %d\n",rabbit);

乌龟赢输出@_@,兔子赢输出^_^,平局则输出-_-;后跟1空格,再输出胜利者跑完的距离。

3.1.2 代码截图

p1:看了同学的pta,在同学的指导下完成的。只用了20多行

p2:自己之前独立完成的,写了很多行代码。

3.1.3 测试数据

3.1.4 PTA提交列表及说明

>

·Q1:没考虑比赛时长不足40分钟的情况,默认比赛时长为40的倍数,直接进行计算

·A2: 后面在调试的时候输入30它输出的结果是兔子跑了90米,乌龟跑了30+3*30米

·Q2:一开始的思路很繁琐,是按着题目的意思按部就班来,一个条件一个条件的判断,多个if嵌套使用,某一步出错了不好修改。

·A2:运用flag来控制休息时间的停止,并且在执行兔子睡觉时间的计算时兔子的休息时间是一分钟一分钟的加,而不是直接加三十,这是我没考虑到的。

3.2 PTA题目2

本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。

3.2.1 算法分析

int定义i:行数,j:行前空格数,n:输入的菱形高度,k:控制每一行的字母和空格的输出,mid:中间行。char定义ch:字母。首先求出mid=n/2+1,然后进入for循环,for i=1  to  n,do    for j=1 to fabs(mid-i)do 输入空格

然后再在第一个for循环中放入i 与mid 大小的判断,

if(i<=mid)     则进入一个for循环,

for k=1 to 2*i+1  do  ch+i-1,   然后再判断位置,当处于第一个位置和最后一个位置时填写字母,中间填写空格,然后再将字母初始化为输入的字母。然后再判断,

if(i>mid)则进入另一个for循环,

for k=1  to  2*(n-i)   do   ch=ch+(n-i)

再判断是否为第一个位置或者最后一个位置,如果是,填字母,如果不是,填空格。一样将字母初始化为输入的字母,最后输出结果。

3.2.2 代码截图

1.错误代码

2.正确代码

3.2.3 测试数据

3.2.4 PTA提交列表及说明

>

·Q1:一开始没考虑好下半部分的每一行的字母加空格的总数的规律,导致上半部分对,下半部分是错的,然后测试点2最大高度,最大字符出错,其实应该是都错,就一个B 5是对的。

·A1:然后调整了k与n和i的关系,也通过了第二个测试点。

·Q2:一开始没有在进入下一个for循环前将ch初始化为输入的字母,导致字母在一直递增。

·A2:调试之后看出了错误。

3.3 PTA题目3

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,计算有几种不同的换法

3.3.1 算法分析

定义变量x放输入的数

fen5,fen2,fen1为各硬币的数量,max5,max2,max1为各硬币的最大值用item来储存x的值,因为x的值后面会改变,x=x-8确保三种硬币各有一个,然后

max=x/5-1          计算五分硬币最多有多少个

for fen5=max5   to  fen5==1;do

max2=(item-fen5*5)/2    求两分硬币最多有多少个

for   fen2=max2     to   fen2==1     do

max1=item-fen5*5-fen2*2    计算一分硬币当次循环时的数量

for   fen1=max1     to    fen1==1  do

用if(1*fen1+2*fen2+5*fen5==item)来判断当次循环是否满足条件,满足则输出total硬币总数,满足的种数count+1;

最后输出各个硬币数,和硬币总数还有满足的种数

3.3.2 代码截图

3.3.3 测试数据

3.3.4 PTA提交列表及说明

·Q1:一开始计算max2的式子放错位置,导致一直输出不了正确答案  

·A1: 然后还是经过调试得出max2的值不对。

·Q2:自己能输出正确答案但是一直错误,检查了很多遍也出不来,有点崩溃

·A2:然后突然想到输出格式的问题,输出是count =     而我只有一个值没有count =

4.代码互评

1.同学的代码

2.我的代码

(1)我先考虑的是将三种硬币各分一个,然后再计算。同学是直接算5分硬币的最大值,2分硬币的最大值,再进入循环,确定每次循环时1分硬币的数量。

(2)他的代码有一个细节,用了while判断是否2分硬币为0,如果为0退出循环得出5分硬币减1,然后再计算b,即2分硬币的个数。

(3)  他的变量很少,灵活运用两个while直接得出三个硬币的数量,最后加一个判断就得出结果。

c语言:第二次作业,循环结构的更多相关文章

  1. C语言第二次作业-----顺序结构

    一:改错题 (1)输出指定信息: 将给定源代码输入编译器: 执行编译命令,发现编译器报错,错误信息如下: 经检查,发现源程序将"stdio.h"误拼为"stido.h&q ...

  2. C语言第二次作业---分支结构

    一.PTA实验作业 题目1:计算分段函数[2] 1.实验代码 double x,y; scanf("%lf",&x); if(x>=0){ y=sqrt(x); } ...

  3. C语言第二次作业——顺序结构

    一.改错题 1.输出带框文字:在屏幕上输出以下3行信息. (1)源程序 对程序进行编译,发现错误信息1 错误原因:stdio拼写错误 改正方法:将stdio正确拼写 对程序进行编译,发现错误信息2 错 ...

  4. C语言第二周作业----分支结构

    一.PTA实验作业 题目1.7-1计算分段函数 本题目要求计算下列分段函数f(x)的值: 注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂. 1.实验代码 int ma ...

  5. C语言第二周作业——分支结构

    一.PTA实验作业 题目1.7-1计算分段函数 本题目要求计算下列分段函数f(x)的值: 1实验代码 double x,result; scanf("%lf",&x); i ...

  6. C语言程序设计第六次作业——循环结构(2)

    C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...

  7. C语言第五次作业——循环结构

    C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ...

  8. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

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

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

  10. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

随机推荐

  1. 使用xheditor时 cloneRange错误 ext.net

    使用ext.net 加  xheditor时,一直报 cloneRange错误. 于是 按照说明但独使用xheditor  ,检查无错,正常使用, 因此排除版本问题. <ext:panel ru ...

  2. 黄聪:微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付

    一.首先先确定H5支付权限已经申请! 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB ...

  3. 用PLSQL DEVELOPER工具简单查找ORACLE中的死锁和死锁排除

    用DBA身份登录后 查找死锁: select sess.sid,     sess.serial#,     lo.oracle_username,     lo.os_user_name,     ...

  4. locate中使用variant

    利用locate构造多字段查询,采用variant很方便,简介如下, //构造查询多字段,例如'编号;姓名'形式 aLookField :=  FieldByName ('关键字1').AsStrin ...

  5. 报错:/usr/sbin/mysqld: Can't find file: './performance_schema/events_waits_summary_by_account_by_event_name.frm' (errno: 13 - Permission denied)

    报错背景: Linux环境下安装MySQL数据库. 安装完成,数据库初始化,启动数据库时报错. 报错现象: -- :: [ERROR] Native table 'performance_schema ...

  6. 流程帮App风险评估

    一. 存在风险 此处罗列出了我们开发小组可能遇到8种的风险. 编号 风险名称 内容 发生概率 损失(人周) 危险度(周) 1 计划编制风险 对所要使用技术不熟悉,可能导致无法交付: 每个模块的实现一定 ...

  7. microsoft.jet.oledb.4.0 未注册

    64位系统已经不支持4.0 解决办法 1.下载 ACE2010的驱动,64位的. http://www.microsoft.com/downloads/zh-cn/details.aspx?famil ...

  8. su: Authentication failure问题

    问题: su命令不能切换root,提示错误su: Authentication failure 解决: 使用命令 sudo passwd root 下次再su的时候只要输入密码就可以成功登录了.

  9. python之路——21

    复习 1.序列化:数据类型转换成字符串的过程 为了方便存储和网络传输2.序列化模块: 1.json 1.dumps 2.loads 3.dump 和文件相关 4.load 不能load多次 2.pic ...

  10. 借助ssh隧道和中间主机,使本地主机可以直连远程主机

    本地主机:    localhost 中间主机:   kickstart服务器 10.164.229.162 远程主机:   fuel 服务器  192.168.0.11 背景:正常情况下,本地不能直 ...