qtsz

导航

C语言I博客作业09

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 作业链接
我在这个课程的目标是 灵活使用C语言
这个作业在那个具体方面帮助我实现目标 分清break,continue在循环体中的区别,循环的嵌套
参考文献 C语言程序设计(第3版)、百度

1.PTA实验作业(20分/题)

1.1 7-2 换硬币 (20 分)

题目内容描述:将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行    输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4

1.1.1数据处理

定义五个整型变量money,fen5,fen2,fen1,total,count;通过for循环和if-else语句进行判断,然后输出,用count表示算法的总数,然后输出。

数据处理:
伪代码:
定义变量
输入money
for(fen5=money/5;fen5>0;fen5=fen5-1)//表达式1:将money除以5的整除部分的值赋给fen5,判断fen5是否大于0,符和fen5--
for(fen2=money/2;fen2>0;fen2=fen2-1)//表达式2:将money除以2的整除部分的值赋给fen2,判断fen2是否大于0,符和fen2--
for(fen1=money;fen1>0;fen1=fen1-1)//表达式3:将money剩余的都给fen1,判断fen1是否大于0,符和fen1--
if(判断fen5+fen2+fen1是否等于money)
输出fen5,fen2,fen1,total//其中total等于fen5,fen2,fen1硬币数总和
输出count//换法个数
return 0;

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
10 fen5:1, fen2:2, fen1:1, total:4,fen5:1, fen2:1, fen1:3, total:5,count = 2 随机输入
13 fen5:2, fen2:1, fen1:1, total:4,fen5:1, fen2:3, fen1:2, total:6,fen5:1, fen2:2, fen1:4, total:7,fen5:1, fen2:1, fen1:6, total:8,count = 4 题目数据
7 count=0 小于8

1.1.4 PTA提交列表及说明

答案错误:没有判断总数钱是否等于money,少了 if(fen5*5+fen2*2+fen1==money)这条判断语句
格式错误:printf("count = %d",count);写成了printf("%d",count);输出的格式不正确

1.2 7-6 跟奥巴马一起画方块 (15 分)

题目描述:

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代    码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

1.2.1 数据处理

数据表达:定义了整型,字符型两种,用scanf函数输入,运用if-else语句,for循环,判断
数据处理:
伪代码
定义变量
输入字符,整型变量
if(数%2==0)//偶数
for(i=1;i<=n/2;i++)//判断行数
for(j=1;j<=n;j++)//判断列数
打印
else//为奇数
for(i=1;i<=(n+1)/2;i++)//判断行数
for(j=1;j<=n;j++)//判断列数
打印
返回

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
10 a aaaaaaaaaa(4行) 题中数据
16 l llllllllllllllll(8行) 随机取值

1.2.4 PTA提交列表及说明

编译错误:字符型输出打成了%d,改成%c就行了
答案错误:j<=n,写成j<=n/2,但是题目是行数实际上是列数的50%,所以改成j<=n就行了

2.代码互评(5分)

自己代码

同学代码1

同学代码2

第一位同学:他的嵌套循环不分奇偶性,而是在嵌套循环的前面判断它的奇偶性进行四舍五入,比较简单,而我的分了奇偶性
第二位同学:他也没有判断奇偶性,用for循环中用(n+1)/2来替代判断的中止条件,最简单了
他们都没用判断奇偶性,而我判断了,感觉麻烦了好多

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 2小时 49 Markdown语法 \n,表示的是什么
第二周 2小时 68 华氏温度的转换 数据类型搞不懂
第三周 4小时 89 if-else从句 怎么缩进程序代码
第四周 3小时 135 for的循环语句 怎么对变量赋值
第五周 3小时 140 基本的定义函数 实参,形参分不清
第六周 4小时 167 嵌套语句,if-else的分支结构 问题太多了
第七周 3.5小时 160 switch语句 switch语句中能不能有范围存在
第八周 4小时 166 while,do-while语句 while语句与for语句的转换
第九周 4小时 180 break语句跟continue的区别 continue语句的循环

3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

本周学习了continue语句、break语句和continue语句的区别和嵌套循环。

3.3.2 学习体会

本周学了break,continue语句,并且学了break,continue语句在循环体中的区别,一些简单的嵌套语句,虽然感觉听起来简单,但是做起来就感觉很难,pta现在的题目很难了,但是有些题目还是    挺简单的,还是能够自己解决,但一些难得题目还是要去找答案,但是我要把别人代码读懂,然后自己在写一遍,可能也会用不同方式去写,还是好好学吧!

posted on 2019-11-22 18:42  qtsz  阅读(246)  评论(5编辑  收藏  举报