C语言I作业09

问题 答案
这个作业属于哪个课程 C语言程序设计II
博客作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10029
我在这个课的目标是 掌握for句型的嵌套,与已掌握知识结合
这个作业在哪具体方面帮助我实现目标 对编译语法更了解,对代码的小细节更了解
参考文献 C语言程序设计,百度

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 实验代码截图

C语言I作业09_第1张图片

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 实验代码截图

C语言I作业09_第2张图片
C语言I作业09_第3张图片

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)

C语言I作业09_第4张图片

同学代码(2)

C语言I作业09_第5张图片

自己代码

C语言I作业09_第6张图片

(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 累积代码行和博客字数

C语言I作业09_第7张图片

3.3 学习内容总结和感悟

3.3.1 学习内容总结

C语言I作业09_第8张图片

3.3.2 学习体会

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

你可能感兴趣的:(C语言I作业09)