C语言I博客作业09

这个作业属于哪个课程? C语言程序设计II
这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10028
我在这个课程的目标是 计算机中级执照
这个作业在哪个具体方面帮助我实现目标? 熟悉掌握break、continue的使用,熟悉使用循环的嵌套解决问题
参考文献 教科书,《C Primer Plus》等。

1、PTA实验作业

1.1 题目名1

7-2 换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。

输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。

1.1.1数据处理

数据表达:用了money,fen5,fen2,fen1,total,count这些变量,根据题目可以得到,定义为整型;
数据处理:(伪代码)

include"stdio.h"

int main()
{
定义变量 并给变量赋值:待换的零钱, 5分数=1, 2分数=1, 1分数=1, 硬币数=0, 情况数 = 0;

for( 5分硬币从最多到一个的情况)
for ( 2分硬币从最多到一个的情况)
{
    for ( 1分硬币从最多到一的情况)
    {
        if((5分数*5+2分数*2+1分数)等于代换的零钱数);

        硬币数 =5分数 + 2分数 + 1分数;
        情况数++;
        printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", 5分数,2分数,1分数, 硬币数);
    }
}
printf("count = %d\n", 情况数);

}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
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 题目所给数据测试
10 fen5:1, fen2:2, fen1:1, total:4;fen5:1, fen2:1, fen1:3, total:5;count = 2 比题目较小值测试
12 fen5:1, fen2:3, fen1:1, total:5;fen5:1, fen2:2, fen1:3, total:6;fen5:1, fen2:1, fen1:5, total:7;count = 3 随机值测试

1.1.4 PTA提交列表及说明


编译错误:for语句中没有用分号;(加入分号解决)
编译错误:在输出语句中符合用错,将逗号打成了一点;(更换逗号)。
编译错误:赋值运算多加了括号;(去除括号解决)

1.2 题目2

7-3 找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。

输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。

1.2.1 数据处理

数据表达:用了m,n,i,j,sum,k,count这些变量,根据所学知识得来这些变量,定义为整型。
数据处理:用了for循环和if语句。

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
2 30 6 = 1 + 2 + 3,28 = 1 + 2 + 4 + 7 + 14 题目所给数据测试
2 1000 6 = 1 + 2 + 3、28 = 1 + 2 + 4 + 7 + 14、496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 使用较大数据测试
900 1000 None 使用随机数据测试

1.2.4 PTA提交列表及说明


答案错误:没有对处理好初始赋值的条件。

2、代码互评

同学代码截图

自己代码截图


不同点:
1.从代码的复杂程度来看,我的代码较为简单一点;定义的变量也比较多。
2.该同学是依次的把情况列出来计算,我是一个判断条件来判断是否完数。
3.我用了3个for循环,而他用了一个。

3、学习总结

3.1 学习进度条

|||||
|:--|:--|:--|:--|:--|
|周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题|
|第一周|3h|50|了解到了最基本的C语言程序语句|无|
|第二周|12h|118| 学习了用MinGw-w64来进行编程|无|
|第三周|16h|226|分段函数的表达,if,else语句的用法|对循环语句for的使用看不太懂|
|第四周|12h|230|学会了for循环语句的使用|对各语句的使用还是不熟练|
|第五周|15h|280|定义函数|对函数的定义还是有点混乱|
|第六周|14h|256|如何使用逻辑表达式及else-if语句|无|
|第七周|13h|235|多分支结构switch语句的使用|无|
|第八周|15h|289|whil语句和do-while语句的深入学习|无|
|第九周|13h|285|悉break、continue的使用,熟悉使用循环的嵌套解决问题|无|

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

从整体来说这pta作业是在不断的增加难度,未来的学习将更加的艰难,一恍惚看到了题目也不知道怎么动手去解决,脑袋短路,在每个题目上的分析花费的时间很久,做题的速度慢也在逐步体现,仅仅只是依靠这点pta的题目是不能好好的学好专业的,在课后还是要加强的书本内容的练习,不能放松对专业的学习,不然会落下许多,而每周都有新的内容灌输,这不得不让人着急,担心,所以只有每天坚持的不断练习才能不被“大佬们”甩开,虽然每次上课老师讲的东西不多,这更主要的是我们要课后努力去学习!没什么啦,还是好好加油!

posted @ 2019-11-22 10:51  银财  阅读(207)  评论(1编辑  收藏  举报