1 PTA实验作业

1.1 7-2 换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
1.1.1 数据处理
数据表达:使用整型变量 x,i,j,n,count,count初始值为0,x是输入值, i,j,n是for循环需要的变量
数据处理:伪代码
int x,i,j,n,count ← 0                                            /*定义五个整型变量,x,i,j,n,count,且count赋值为0*/
scanf ("%d", &x);                                                /*调用scanf()函数输入范围8-100内的任意一位正整数x*/
for  i ← x/5  to  0                                              /*嵌套循环,外层循环,i赋值x/5,递减至0,跳出循环*/
do for  j ← (x-5*i)/2  to  0                                     /*内层循环,j赋值(x-5*i)/2,递减至0,跳出循环*/
do printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,j,n,i+j+n)   /*输出每次正确循环的值*/
count++                                                          /*count递增*/
printf("count = %d",count)                                       /*输出count的最终值*/
1.1.2 实验代码截图

1.1.3 造测试数据
| 13 | 
  | 
输出正确,代码正确 | 
| 8 | 
  | 
输出正确,代码正确 | 
| 10 | 
  | 
输出正确,代码正确 | 
1.1.4 PTA提交列表及说明

提交说明:答案正确:c++运行时,答案错误,因为忘记看输出的顺序了,把他的顺序写倒了
2.1 7-3 找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
2.1.1 数据处理
数据表达:整型变量n,m,i,j,s,b其中n,m是输入值,i,j是for循环时需要的变量,j也是输出值,s,b是程序中运算变化需要的变量
数据处理:伪代码
int n,m,i,j,s ← 1,b ← 1                  /*定义六个整型变量,n,m,i,j,s,b,且s,b赋值为1*/
scanf("%d %d",&n,&m)                     /*调用scanf()函数输入1~10000范围内的任意两位正整数n,m*/
for i ← n to  m                          /*嵌套循环,外层循环,i赋值n,递增减至m,跳出循环*/
do for j ← 2  to  i/2                    /*内层循环,j赋值2,递增至i/2,跳出循环*/
if(i%j==0)                               /*判断i除j是否整除,是就运行下一步*/
if(i==s)                                 /*判断i是否等于s,是就运行下一步*/
printf("%d = 1",i)                       /*输出每次循环时i的值*/
do for j ← 2  to  i/2                    /*内层循环,j赋值2,递增至i/2,跳出循环*/
printf(" + %d",j)                        /*输出每次正确循环的值*/
printf("\n")                             /*换行*/
if(b==1)   printf("None")                /*判断b是否等于1,等于输出None*/                
2.1.2 实验代码截图


2.1.3 造测试数据
| 2 30 | 
6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | 
两个完数,输出正确,代码正确 | 
| 0 1 | 
1=1 | 
一个完数,输出正确,代码正确 | 
2.1.4 PTA提交列表及说明



提交说明:部分正确: 第二个for循环时未考虑,当未加到最大值时就达到要求,以至于在第三个for循环时输出错误值,应将第二个for循环里的第二个if语句之后的代码都放到第二个for句型运行结束 
之后。
2 代码互评
同学代码(1)

同学代码(2)

自己代码

(1)该同学n,m变量未定义,程序却可以运行成功,我从未成功,我们都使用了for句型的嵌套,但他条件是变量减小,而我相反
(2)该同学的代码比我的长了很多,他变量是一个个定义的,而且用的是while和do while循环,我的是for循环的嵌套
3.学习总结
3.1 学习进度条
| 第一周 | 
2天 | 
27 | 
学会了一些基础的代码 | 
如何正确自己打代码 | 
| 第二周 | 
2天 | 
58 | 
学会了改变编码的环境 | 
如何正确自己打代码 | 
| 第三周 | 
2天 | 
87 | 
学会了几个复杂点的代码 | 
如何正确自己打代码 | 
| 第四周 | 
2天 | 
126 | 
知道了for循环的简单使用 | 
字符所需的特殊标识的区分 | 
| 第五周 | 
2天 | 
85 | 
会使用定义函数和调用 | 
对于C语言里的一些单词的含义不够清晰 | 
| 第六周 | 
6天 | 
158 | 
会使用if语句的嵌套 | 
对于C语言里的一些符号的含义和ASCII码集不够清晰 | 
| 第七周 | 
2天 | 
145 | 
会使用switch语句 | 
对于switch语句的灵活度不够 | 
| 第八周 | 
3天 | 
124 | 
会使用do while循环 | 
不能准确的打出自己的代码 | 
| 第九周 | 
2天 | 
137 | 
会使用for循环嵌套 | 
对于以前的错误,再一次犯了 | 
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
学的知识越来越多,有些知识点开始混淆起来了,做题时,没有一点灵活感,就是一直在套模板,这是一种危险的信号,应对题目多次求解,用不同的方式。