问题 |
答案 |
这个作业属于那个课程 |
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现在的题目很难了,但是有些题目还是 挺简单的,还是能够自己解决,但一些难得题目还是要去找答案,但是我要把别人代码读懂,然后自己在写一遍,可能也会用不同方式去写,还是好好学吧!