这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业09 |
我在这个课程的目标是 | 希望能够在学完后能够自己做出一个C语言的小游戏 |
这个作业在那个具体方面帮助我实现目标 | 熟悉循环结构的使用,熟悉break、continue的使用 |
参考文献 | C语言程序设计 |
1.PTA实验作业(20分/题)
1.1(7-2)换硬币
1.1.1数据处理
-
数据表达:此题我定义了六个整型变量x, fen5, fen2, fen1, total, count;并将total和count赋值为0;其中x代表输入的待换的零钱数额;fen5, fen2, fen1分别表示为5分、2分和1分硬币的数量;total为当前方案所需的硬币总数量,count代表方案的个数
-
数据处理:
begin 定义变量x, fen5, fen2, fen1, total, count total←0, count←0; fen5 = x / 5; while(fen5不等于0) { fen2 = (x - fen5 * 5) / 2; while(fen2不等于0) { fen1 = (x - fen5 * 5 - fen2 * 2) / 1; while(fen1不等于0) { total = fen5 + fen2 + fen1; 如果当前计算所得总金额不等于x { fen1--; 并跳出本次循环; } 如果当前计算所得总金额等于x { 输出五分、两分、一分的个数,以及总个数 分法+1; } fen2--; } fen5--; } 输出总方法数; end
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 | sample 一般小x |
8 | fen5:1, fen2:1, fen1:1, total:3 count = 1 |
最小x |
100 | 数据过于庞大就不列出来了 | 最大x |
1.1.4 PTA提交列表及说明
答案错误:这里的答案错误是因为我之前忘记输出count的值了所以导致答案错误,后来在while (fen5 != 0)的循环外加printf("count = %d", count);
1.2(7-3)找完数
1.2.1数据处理
-
数据表达:此题我定义了四个整型变量m, n, count,并将count赋值为0;其中m和n为输入的取值范围中的最大值而和最小值,count用作做确定既定取取值范围内是存在完数;其中还定义了整型变量i和j分别代表完数和完数的因子;我还定义了一个函数sum(int i)用于判断是否为完数
-
数据处理:
begin 定义函数m、n、count count←0; for(定义整型变量i;i小于等于n;i++) { 如果(i等与sum(i)) { count++; 输出i = ; for(定义整型变量j;j小于i;j++) { 如果(i对j取余为零) { 如果(j等于1) { 输出1; } 如果(j不等于1) { 输出 + j; } } } 换行; } } 如果其中没有完数 { 输出None; } end 定义函数sum(int n)//判断是否为完数 定义整型变量sum sum←0; for(定义整型变量i;i小于n;i++) { 如果(n对i取余为零) sum等于sum+i; 如果(n对i取余不为零) 跳出本次循环; } 返回sum的值
1.2.2实验代码截图
1.2.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
2 30 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | sample等价 |
6 28 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 |
取完数为边界 |
2 5 | None | 空集 |
1.2.4 PTA提交列表及说明
答案错误:之前在输出的时候少了最前面的1;导致答案错误,后来将因子的输出过程改成了
if (j == 1)
printf("1");
else
{
printf(" + %d", j);
}
解决了答案错误的问题
2.代码互评
同学代码:
我的代码:
不同点:我的代码用了函数,对完数进行判断,写起来是麻烦了一点大但是因为我对函数的运用还熟悉,可以在平时的作业中多联系练习,但是同学用的要相对简洁一些
相同点:原理都差不多
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 20小时 | 372 | if-else语句和数学函数 | 暂无 |
第七周 | 10小时 | 226 | 分支结构 | 暂无 |
第八周 | 12小时 | 110 | for循环结构 | 暂无 |
第九周 | 16小时 | 200 | 函数的声明,定义和调用 | 暂无 |
第十周 | 20小时 | 323 | 分支结构,字符型数据类型,ASCII码,逻辑运算符 | 对于字符型数据类型的运用还是不熟练,需要多加练习 |
第十一周 | 18小时 | 788 | 分支结构,switch语句,简单的数组的使用 | 对于数组的了解还是不够,下周还是要多加学习 |
第十二周 | 22小时 | 346 | 循环结构,while循环和do-while循环 | 数组和结构体的知识有待加强 |
第十三周 | 20小时 | 463 | 熟悉break、continue的使用;熟悉使用循环的嵌套解决问题。 | 最近自学的进度有点落下来了,有必要调整下自己的时间安排 |
3.2 累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
太快了,马上就期末了,最近没有把重心全部放在专业课上,其他的也还是要重新复习一下,所以现在的进度慢了点,但是周末是有必要补上一波的。