一.表格
这个作业属于哪个课程 |
C语言程序设计II |
这个作业要求在哪里 |
C语言I博客作业09 |
我在这个课程的目标是 |
把C语言学精,熟练掌握编程技术,努力找到简单代码的写法 |
这个作业在哪个具体方面帮助我实现目标 |
PTA上做题,devc++慢慢掌握调试,加强对于break和continue语句的理解与应用 |
参考文献 |
百度百科,其他同学作业,《C Primer Plus》,教科书,伪代码的写法 |
二.本周作业
1.PTA实验作业
1.1 换硬币
题目内容描述:将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
1.1.1数据处理:
- 数据表达:x,count,fen5,fen2,fen1,total(变量);运算,赋值(怎么来);int(整型)
- 数据处理:
定义变量x来放待换的零钱数额,fen5来放5分的个数,fen2来放2分的个数,fen1来放1分的个数,total来放3种数额个数的总数,count来放总共有几种换法。total赋值为0;count赋值为0。
输入待换零钱数额
for(fen5=20;fen5>0;fen5--)//进入for嵌套循环
初始5分个数赋值为20个,5分个数大于0,就减1
for(fen2=50;fen2>0;fen2--)
初始初始2分个数赋值为50个,2分个数大于0,就减1
for(fen1=100;fen1>0;fen1--)
初始初始1分个数赋值为100个,1分个数大于0,就减1
if((fen5*5+fen2*2+fen1)==x)
判断总共的三个数值额是否等于待换零钱数额
total=fen5+fen2+fen1;
count++;//换法加1
输出5分个数:,2分个数:,:1分个数:,总个数:
下一行输出总换法
程序结束。
1.1.2实验代码截图
1.1.3造测试数据
输入数据 |
输出数据 |
说明 |
13 |
|
题目样例 |
6 |
|
不符合题目给出条件 |
20 |
|
输入一个整数 |
1.1.4PTA提交列表及说明
答案错误:忘记在if循环打上"{}",导致无限循环;加上了"{}"(三次答案错误就只是这个错误,检查了3遍才看出来)
格式错误:太久没写PTA,把输入x的值忘记打上&;加上了&
1.2 找完数
题目内容描述:所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
1.2.1数据处理:
数据表达:m,n,a,b,c,i,j(变量);赋值,运算(如何来);int(整型)
数据处理:
定义变量m,n来放正整数,其中m小于n,i来放m-n之间所有数,j来放从1到i的所有数,a来放j累加的值,b来放2到j的所有数,c来放完数的总数,c赋值为0。
输入正整数m,n
for(i=m;i<=n;i++)//进入for嵌套循环
把m到n所有数提出来
a赋值为0
for(j=1;j<i;j++)
把1到i所有数提出来
if(i%j==0)
判断i是否被j整除
a+=j;
if(a==i)
判断是否是完数
输出完数=1//为了简单输出先把完数“完数 = 1”打印出来,因为会有1
for(b=2;b<j;b++)
提出b到j所有数
if(i%b==0)
判断是否i被b整除
输出每个完数的因子累加形式
输出换行
计算完数总数
if(c==0)//判断完数总数是否为0
输出“没有”
程序结束
1.2.2实验代码截图
1.1.3造测试数据
输入数据 |
输出数据 |
说明 |
2 30 |
|
使用题目样例 |
2 4 |
|
输入没有完数的 |
2 1000 |
|
扩大范围:一位数到三位数 |
1.1.4PTA提交列表及说明
多种错误:空集答案错误,完数格式错误;把if加上了"{}"//空集错误没找到、、、
部分错误:计算完数的个数变量,忘记赋值;把c赋值=0//空集答案错误改正
2.代码互评
2.1.1 同学代码截图(宁佩同学)
2.1.2自己代码截图
- 我们的不同之处.
- 她定义的变量和我有些不一样,我用题目例题给了确定的个数,她用了x,y,省略了定义变量。
- 她只用了for嵌套结构,我用了for嵌套和if语句。
- 她和我判断的方法不一样,她用的是把5分和2分变成了5个一分和2个一分,再去判断;我是直接先假设他们都有100分,然后再去讨论。
- 她在最后定义z总钱数,和total总个数,还没计算count,直接输出。我是写的比较完整。
- 她的代码比较新颖,值得学习。
2.2.1同学代码截图(软件四班徐旖同学)
2.2.2自己代码截图
- 我们的不同之处.
- 她的代码和我差不多,我写的比较完整,她写的有些简洁。
- 她多用了if循环判断m与n的范围,这个题目有,可以不用写。
- 她把一些括号省略了,看起来简单。
- 我把总数赋值放在for循环里面方便看结构,她放在定义变量那。
3.学习总结
3.1学习进度条
周/日期 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较迷惑的问题 |
九/19/11-22/11 |
三天 |
100 |
break语句,continue语句用法和区别 |
不太清楚字符怎么用 |
八/12/11-15/11 |
3天 |
120 |
while和do-while循环语句用法和概念 |
暂时没有 |
七/5/11-8/11 |
三天 |
140 |
switch语句用法 |
如果x为浮点型,y,z为整型为什么x=y/z答案不对 |
六/28/10-2/11 |
3天 |
130 |
嵌套if-else语句,格式以及如何应用 |
不太清楚Devc++怎么调试 |
五/22/10-25/10 |
3天 |
100 |
用法如何定义函数,格式以及如何应用 |
暂时没有 |
四/15/10- 18/10 |
3天 |
80 |
循环结构,流程图,数学函数 |
数学公式的表达,为什么整数除以变量有一个要用括号括起来还要乘以1.0 |
三/9/10-13/10 |
3天 |
70 |
if-else,&&用法,字母%用法,数学函数 |
PTA每次答案错误,都十分难找出来。不得已重打 |
3.2累计代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
- 这周学了break语句,continue语句用法与区别。break是直接跳出循环,continue是结束本轮循环执行下一轮。
- 题目不难,但刚用for嵌套以及break和continue还是有些乏力,不过经过书籍、百度以及做题目,我已经理解了用法并能很好应用。反正在C语言课上听得我如痴如醉
- Devc++调试可能我还是还是不会,,不清楚到底断点设置在哪里。。。
- 我觉得可以在实验课的时候,彭老师能用实例再次教一下我们调试,,因为真的很多人不会。。